일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오블완
- 컴퓨터구조
- 자바 실습
- 디버깅
- JSP/Servlet
- 자바스크립트심화
- SQL
- 중학1-1
- 정보처리기사실기
- html/css
- 딥러닝
- 순환신경망
- 연습문제
- CSS
- 컴퓨터비전
- 데이터분석
- 개발일기
- 자바
- 상속
- JDBC
- rnn
- c언어
- 데이터베이스
- 머신러닝
- 자바스크립트
- JSP
- 중학수학
- 혼공머신
- 파이썬
- 정보처리기사필기
- Today
- Total
목록인공지능 (381)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
오늘의 공부를 본격적으로 시작해보겠다. 이번에는 Chain of Thought라는 다소 생소한 단원을 배우게 된다. 이론 3 - Chain of Thought 복잡한 추론에 대해서 낮은 성능을 보인다. 원래는 9개가 되어야 하는데 답을 제대로 맞추지 못한다. 언어 모델은 왜 이러한 문제를 풀지 못할까?언어모델은 숫자, 기호에 대한 문제를 잘 이해하지 못한다. 사람이 하는 방식을 따라하자는 의도에서 만들어냈다. 시스템 1은 직관이고, 시스템 2는 이성으로 느리고 복잡한 작업에 대해 논리적으로 해결한다. 멘탈 시뮬레이션은 미리 그려보며 생각하는 것이다. 이러한 과정이 사람이 복잡한 사고를 추론해나가는 요소이다. Chain of Thought에서는 답변에 중간중간의 풀이 과..
두 번째 학습을 시작해 본다. 이번에는 대화형 인지 모델에서 Few-show이라는 프롬프팅을 배우게 된다. 이론 2 - Few show 프롬프팅 대규모 언어모델에서 많이 활용되는 능력 중에 하나이다. 이러한 것을 Few-shot이라고 한다. 지시 안에서 명료하게 설정하여 어떤 과제를 수행해야 하는지 알려준다. 5개의 예제를 사용하면 5 shot이 된다. 실제로는 말로 표현하기 어려운 지시 사항의 경우 잘못된 결과를 낼 수 있다. 따라서 예시를 입력하여 정확한 대답이 되도록 유도한다. 우리는 대화를 할 때 많은 것들을 생략할 수 있다. 하지만 언어 모델과 대화할 때는 대충 말하면 응답이 잘못 채워질 수 있다. 다양한 주제의 상황을 고려해서 질문을 만드는 것이 중요하다. ..
오늘부터 본격적으로 프롬프트 엔지니어링에 대해서 공부하려고 한다. 어젯밤부터는 공부가 별로 하고 싶지 않아 제목만 써놓고 놀았고 오늘 새벽에도 일어나지 않고 이불속에서 빈둥거리다가 7시 반이 되어서야 겨우 일어났다. 그래도 지금부터 공부해도 늦지 않았다는 것을 알고 있다.난 내가 하고 싶어야 무엇이든 잘하는 사람이라 동기부여가 될 때까지 기다리는 편이다. 이제 공부하고 싶은 마음이 생겼으니 지금부터 본격적으로 해볼 것이다. 이론 1 - 프롬프트 디자인 대화형 생성 AI는 이처럼 두 가지로 구성된다. 이러한 것을 감정 분석이라고 하는데 이를 언어 모델로 풀어볼 수 있다. 빈칸에 들어갈 단어를 찾기 위해서는 사회적인 이해가 필요하다. ..
마지막 단원이다. 정말 재미없는 공부를 이처럼 다 끝내다니 스스로가 대견스럽다. 마지막 공부를 이어가볼 것이다. 그리고 조금 쉬어야지. ViTViT(Vision Transformer)는 컴퓨터 비전 분야에서 트랜스포머를 적용하는 개념이다. 즉, 자연어 처리에서 RNN을 물리치고 왕좌에 오른 트랜스포머를 이미지에도 적용하려는 아이디어를 구현한 것이다. 2020년에 발표된 논문을 바탕으로 간단하게 재구성해서 적용한다. 이미지를 여러 개의 패치(patch) 단위로 나누고, 순서대로 포지션에 대한 인코딩한 값을 더하여 트랜스포머에 넣어서 결과를 예측하는 개념이다. 다음과 같이 간단한 코드로 구현해보자.CIFAR-10 데이터를 사용한다. 이미지 크기는 (32, 32, 3)이고, 패치의 크기를 4 픽셀로 ..
드디어 자연어 처리 부분을 마치고 트랜스 포머에 대해서 공부해보려고 한다. 트랜스포머트랜스포머는 순환신경망(RNN)을 사용하지 않고 어텐션만을 사용한 신경망이다. 2017년에 "Attention is All you Need"라는 논문을 통해 발표되었다.앞서 Seq2Seq 모델에서 어텐션 매커니즘을 도입함으로써 성능이 향상되었지만 여전히 순환신경망을 기반으로 해서 속도가 느린 단점이 있다. 순환신경망을 사용하면 인코더에서 입력을 차례대로 처음부터 끝까지 계산하고, 디코더에서도 동일하게 차례대로 처리한다. 이를 해결하기 위해 속도가 느린 순환신경망을 제외하고 어텐션만으로 구성된 트랜스포머를 제안하는 것이다 ([그림 5-46] 참조). 트랜스포머는 순서를 표시하기 위해 위치 인코딩(Positiona..
Seq2Seq에서 동문서답하는 문제를 해결하고자 입력 데이터의 중요한 단어에 집중하는 어텐션(Attention)이라는 개념이 제안되었다. 디코더 부분에 어텐션 레이어를 추가하여 챗봇의 성능의 성능을 향상시켜 보겠다. 어텐션(Attention)Seq2Seq 모델은 기계 번역, 텍스트 요약, 챗봇과 같은 작업에 큰 성과를 보였다. 하지만 문장의 길이가 길어질수록 인코더의 마지막 상태(고정된 맥락 벡터)가 문장 전체를 표현하기 어렵고, 경사 소실과 경사 폭발 문제로 인해 모델의 성능이 떨어지는 문제가 있다. 이를 보완하기 위해 2015년 Seq2Seq 모델에 어텐션(Attention) 메커니즘을 더한 모델이 제안되었다. 사람이 문장을 읽거나 듣고 이해할 때 몇 개의 단어에 집중해서 이해하듯 어텐션 메커니즘..
시퀀스 투 시퀀스 모델에 대해 배우고 있다. 이번에는 모델을 학습하고 예측하는 단계를 진행해 볼 것이다. Seq2Seq 모델로 챗봇 구현 세 번째 모델 학습 이번 예제에서 인코더를 어떤 형태로 구성할 것인지 다음 그림을 통해 확인하자. 고정된 길이의 입력이 들어오면 인코딩에서는 먼저 임베딩 레이어를 거쳐 RNN에 순차적으로 입력되어 최종 은닉 상태와 셀 상태를 출력하면 되는 간단한 구조이다. 인코더와 디코더를 클래스로 만든다. 클래스는 아래 그림과 같이 기본적으로 초기화 함수와 실행 함수가 있다. 초기화 함수에서는 실행 함수에 사용할 변수, 레이어를 미리 불러온다. 이때 파라미터 값을 미리 설정하기도 한다. 인코더에서 필요한 임베딩 레이어, LSTM 레이어, 드롭아웃을 체기화 함수에서 불러..
이번에는 Seq2Seq 모델로 데이터 전처리하는 내용을 공부해 보겠다. Seq2Seq 모델로 챗봇 구현하기 두 번째 데이터 전처리정규식을 활용해 숫자, 한글을 제거하는 함수를 정의했다. 때에 따라서는 특수문자나 영어가 필요할 수 있으니 활용하고자 하는 데이터 및 해결하려는 문제에 따라 의사결정이 필요하다. 앞서 정의한 clean_sentence 함수를 사용해서, 샘플 문장을 전처리해 보면 한글과 숫자 이외의 모든 문자가 제거되었음을 확인할 수 있다. 먼저 konlpy 라이브러리를 코랩 환경에 설치한다. 코랩은 프로그램과 라이브러리 설치 없이 구글 계정만 있으면 누구나 쉽게 활용할 수 있는 장점이 있다. 하지만 기본적으로 설치된 라이브러리 이외에는 매번 필요한 라이브러리 설치가 필요하다.특..
다음으로는 챗봇을 구현하는 내용을 학습해 볼 차례이다. Seq2Seq 모델로 챗봇 구현하기 1. Seq2Seq 모델 개요시퀀스 투 시퀀스(Sequence to Sequence, 줄여서 Seq2Seq) 모델은 기계 번역, 챗봇, 텍스트 요약 등에 활용되는 대표적인 NLP 알고리즘이다. 앞서 소개한 [그림 5-4] 순환신경망 중에서 Many to many 유형에 속한다. 2014년에는 순환신경망을 이용한 Seq2Seq 모델이 소개되었고, 2015년에는 입력 데이터 중에서 중요한 단어에 집중하는 어텐션(Attention) 메커니즘을 Seq2Seq 모델에 적용했다. 2017년에는 트랜스포머(Transformer: All you need is Attention)가 등장했는데, Seq2Seq 모델에서 순환신경..
마음을 다시 추스르고 RNN 공부를 다시 시작해 보는 중이다. 자연어 생성순환신경망을 사용해 새로운 문장을 생성하는 방법을 알아본다. 라이브러리 및 데이터 불러오기 감성 분석(분류)에서 활용했던 네이버 영화 리뷰 데이터 셋을 활용한다. 데이터 내용을 확인한다. 데이터 전처리이번에는 텍스트 전처리를 하기 위해 한글 형태소 분석기 중 Okt(구, twitter)를 활용한다. 문장 생성에서의 전처리는 앞서 다룬 텍스트 분류의 전처리와 다른 점이 있다. 자연스러운 문장을 위해 분용어를 제거하지 않는다. 불용어를 제거하게 되면 이상한 문장이 만들어질 수 있다.다음과 같이 형태소 분석기를 적용하는 전처리 함수를 정의한다. 모델 성능을 위해서는 많은 데이터를 학습시켜야 하지만, 학습 시..