분류 전체보기 45

ai tech 17일차

# RNN RNN은 시퀀스데이터가 입력 또는 출력으로 주어진 상황에서 각 time step에서 들어오는 입력벡터 xt와 그 전 time step의 RNN 모듈에서 계산한 hidden state 벡터 ht-1를 받아서, 현재 hidden state 벡터 ht를 만드는 구조를 가지고 있다. 예를 들면, I study math라는 문장이 주어졌을때, 각 단어가 time step의 입력으로 들어가게 된다. 매 time step마다 동일한 RNN 모듈 A가 재귀적으로 호출된다. 왼쪽 그림을 rolled version이라고 하고 오른쪽 그림을 unrolled version이라고 한다. 어느 순간에 값을 얻기 위해서는 hidden state로부터 값을 얻어낼 수 있어야 한다. time step t-1에서의 hidde..

ai tech 2021.02.16

ai tech 16일차

# NLP Tokenization: 주어진 문장을 단어단위로 쪼개나가는것, 결과적으로 시퀀스가 된다. stemming: 수많은 어미 변화에도 같은단어라는것을 컴퓨터가 알아야하므로 어근만 추출해 내는것이다. NER: 단일단어나 여러단어로 된 고유명사를 인식해내는것이다. part-of-speech tagging: 주어인지 목적어인지 등을 찾아내는 것이다. sentiment analysis: 문장이 긍정인지 부정인지 알아내는 것이다. machine translation: 번역 entailment prediction: 문장간의 사실관계와 모순관계를 찾아내는 것이다. question answering: 질문을 이해하고 정답을 보여주는것이다. dialog system: 챗봇 summarization: 뉴스 한줄 요..

ai tech 2021.02.15

ai tech 15일차

# generative model 데이터를 생성해내는 모델이다. 하지만 그것만이 전부는 아니다. generation: 강아지와 같은 이미지를 만들어내는 것은 당연한것이고, density estimation: 어떤 이미지가 들어왔을때, 그 이미지가 강아지인지 고양이인지 아무것도 아닌지 알아낼 수 있다. 입력이 주어졌을때 확률값을 얻어낼수 있는 모델을 explicit model이라고 한다. 그냥 generation만 할수 있는 경우에는 inplicit model이라고 한다. unsupervised representation learning: 꼬리가 있고 귀가 있고 이런 내용들을 배울 수 있다. 이것을 feature learning이라고 한다. 그렇다면 p는 어떻게 만들까? # basic 이산분포 Bernou..

ai tech 2021.02.05

ai tech 14일차

# 시퀀스 데이터 순차적으로 들어오는 데이터를 시퀀스 데이터라고 한다. 소리, 문자열, 주가 등의 데이터도 시퀀스 데이터이다. 독립동등분포 가정을 잘 위배하기 때문에, 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 된다. 즉, 과거 정보 또는 앞뒤 맥락 없이 미래를 예측하거나 문장을 완성하는 것은 불가능하다. # 시퀀스 데이터를 다루는 방법 이전 시퀀스 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루기 때문에, 조건부 확률을 이용할 수 있다. 식으로는 최초 데이터부터의 확률을 사용하지만, 실제로는 모든 최초부터의 데이터를 사용하지는 않는다. 시퀀스 데이터를 다루기 위해서는 길이가 가변적이더라도 처리가 가능한 모델이 필요하다. 그런데 모든 초기부터의 확률이 항상 필요한것은 아..

ai tech 2021.02.04

ai tech 13일차

# convolution 신호처리 분야에서 두개의 함수가 있을때 두 함수를 잘 섞어주는 방법 또는 연산자이다. 연속적인 형태와 이산적인 형태로 나눠서 볼 수 있다. I라는 것이 전체 이미지라고 하면 K를 필터라고 볼 수 있다. 3*3 필터에 7*7 이미지를 컨볼루션하면 5*5출력이 나오게 된다. 소위 도장을 찍는다고 표현할 수 있는데 필터 행렬을 이미지 행렬에 순차적으로 찍어서 행렬곱을 하고 출력 행렬의 원소를 얻는 것이다. # 그럼 convolution을 어디다 써먹을까? 이미지에 필터를 컨볼루션하게되면 이미지를 블러하거나 엠보스하거나 외곽선만 따는 등의 기능을 할 수 있게 된다. # RGB 이미지 32 * 32 이미지라고 하면 3개의 채널이 있다. 5 * 5 필터로 컨볼루션하더라도 필터에 3개의 채널..

ai tech 2021.02.03

subword tokenization

기계에 단어를 학습시킬때 갑자기 기계가 학습한적 없던 단어가 나타난다면 학습이나 정답 도출이 어려울 것이다. 학습한 단어 집합에 없는 단어는 OOV(out of vocabulary)라고 하는데, 이런 경우를 해결하기 위해 subword tokenization이라는 방법론이 생겼다. 어떤 단어를 더 작은 단어로 분리해서 인코딩 하고 임베딩하겠다는 것인데, 예를 들면 annoyingly라는 단어가 잘 등장하지 않는다면 궂이 이 단어를 그냥 쓰는게 아니라, 더 자주 등장하는 annoying과 ly로 뜯어서 정리해 두는것이다. 이렇게 하면 몇번 등장하지 않는 단어때문에 사전이 엄청나게 커질 필요도 없고, OOV나 잘쓰이지 않는 단어, 새롭게 생긴 단어등에 대응하기가 더 쉬워진다. 이는 영어든, 한국어에든, 일본..

카테고리 없음 2021.02.03

ai tech 12일차

공부전략을 대학교때의 전략으로 바꾸기로 했다. 수업시간에 최대한 머릿속에 입력을 하고, 기초를 따로 채워나가면서 수업시간에 배운내용을 매꿔나가는 것이다. 이렇게 하니깐 멘탈이 회복되면서 지식을 쌓는 느낌이 들었다. # 그라디언트 디센트 손실함수의 편미분을 구해서 빼주는 방식으로 최저 손실을 만드는 파라미터를 찾아주는것이 그라디언트 디센트였다. 1차 미분을 진행하기 때문에, 국소적으로 봤을때 좋은 로컬 미니멈을 찾아간다. # 최적화의 컨셉(대부분이 통계학에서 나온 용어들이다.) Generalization Under-fitting vs over-fitting Cross validation Bias-variance tradeoff Bootstrapping Bagging and boosting # General..

ai tech 2021.02.02

ai tech 11일차

뭔가 당황스럽다. 파이토치는 배우지도 않았는데, 파이토치로 만들어진 프로젝트를 던져받았고, 딥러닝은 맛도 안보고 선형회귀밖에 하지 않았는데, 딥러닝 모델이랑 파라미터를 던져받았다.. 두분 교수님은 서로 거기서 배울거라고 하면서 본인들 파이토치 프로젝트만 보여주는데 이해가 1도 되지않는다;; # 조건부확률 상황 B가 일어날 확률을 분모로 놓고 상황 B가 일어난 동안 A도 일어날 확률, 교집합의 사건을 분자로 넣어서 구한다. # 베이즈정리 모델의 모수를 추정할 때 사용한다. 데이터가 조건부 확률을 이용하여 새로 추가될 때 정보가 업데이트하는 내용과 연관되어있다. A가 조건부로 주어졌을때 B의 사건이 일어날 확률은 B가 조건부로 주어졌을때 A의 사건일 일어날 확률에, A가 일어날 확률을 나눠주고, B가 일어날..

ai tech 2021.02.01

ai tech 10일차

벌써 10일차에 돌입했다. 슬슬 적응되어가니 속도좀 내어볼까? matplotlib # 개론 우리의 데이터는 어떻게 생겼을까? 파이썬의 데이터 시각화 도구 다양한 그래프를 지원하고 판다스와 연동된다. pyplot이라는 객체를 사용하여 데이터를 표시 객체에 그래프를 쌓은다음 flush하는 개념이다. import matplotlib.pyplot as plt X = range(100) Y = range(100) plt.plot(X, Y) plt.show() 최대 단점 argument를 kwargs로 받는다 그래서 알트탭으로 어떤 데이터를 받는지 확인이 어렵다. # figure 객체 그래프는 원래 figure객체에 생성된다. pyplot객체를 사용하면, 기본 figure에 그래프가 그려진다. X_1 = range..

ai tech 2021.01.29

ai tech 9일차

pandas2 # groupby sql groupby와 같다. 인덱스가 같은 데이터끼리 묶어주고(split) 묶은 데이터끼리의 연산(sum, std)을 하고(apply) 모든 인덱스들끼리 모아서 보여준다(combine) # 팀으로 묶어서 포인트들을 합한것으로 팀을 나타내라. df.groupby("Team")["Points"].sum() # 한 개 이상의 column을 묶을 수도 있다. h_index = df.groupby(["Team", "Year"])["Points"].sum() # 이렇게 만든 경우 인덱스는 멀티인덱스이다. h_index.index # 만들어놓은 그룹바이에서 특정 데이터만 볼 수도 있다. h_index["Devils":"Kings"] # 그룹바이를 테이블 형태로 나타낼수도 있다. h_..

ai tech 2021.01.28