본문 바로가기

기계학습61

RNN - 딥러닝을 이용한 자연어처리 입문 # 순환 신경망 (RNN) - 의의 : 일반적인 피드 포워드 신경망 - 입력 길이 고정 > 문장 등 길이가 긴 입력들을 처리하는 신경망이 필요ex) RNN, LSTM 문장 = 단어 시퀀스 라고 할 수 있다.- 시퀀스 모델 : 시퀀스를 처리하기 위해 고안 된 모델. > ex) RNN, LSTM, GRU ** 왜 b 를 편향값이라고 했었던 걸까? >> 입력으로 들어오는 데이터 셋은, 어느정도 전체적으로 치우친 경향을 보일 수 있다. 그걸 표현하기 위한 상수값임. ex) 지문인식 프로젝트에서, 똑같은 지문임에도 불구하고 전체적인 중심 좌표가 어딘가로 치우친 경우. >> 편향과 regularization 에서 사용하는 값과는 전혀 다른 것이다!! 주의하자>How? : regularization 은 변수 x 값들.. 2020. 1. 28.
태깅 작업 - 딥러닝을 이용한 자연어처리 입문 # 태깅 작업 - 정의 : 각 단어가 어떤 유형에 속해있는지를 알아내는 작업 - 종류 : 1) 개체명 인식 : 각 단어의 유형이 사람, 단체, 장소 등 어떤 유형인가2) 품사 태깅 : 각 단어의 품사가 동사, 명사 등 무엇인가 - 케라스를 이용한 태깅 작업 특징 1) RNN 의 다대다 작업2) 앞뒤 시점을 모두 고려하는 양방향 RNN - 태깅 작업 특징 (1) : 훈련 데이터1) 태깅을 해야 하는 단어 = X 값, 해당 X 값에 대응되는 레이블 값 = Y2) pair 을 이루는 x, y 값에 대해 정수 인코딩을 거침 -> 데이터들의 길이를 맞춰주기 위한 패딩 작업> 무슨 소리지?? - 태깅 작업 특징 (2) : 시퀀스 레이블링> 말 그대로, 시퀀스를 가진 X 의 데이터에 대해, 시퀀스를 가진 Y라는 레이.. 2020. 1. 28.
워드 임배딩 - 딥러닝을 이용한 자연어처리 입문 # 워드 임베딩 - 정의 : 단어를 벡터로 표현 + 밀집 표현 # 희소표현 vs 밀집 표현 - 희소 표현 : 벡터 또는 행렬이 대부분 0으로 채워져 있는 경우> 단점 :1) 공간적 낭비 : 쓸데없는 것까지도 다 표현을 해야 함 (0으로 표시)유사 사례) DTM 방식2) 단어의 의미를 담지 못함 -> 단어간의 유사성을 찾지 못함> sol : 분산표현 (밀집표현 방식이 약간 섞임) ->이 연산의 결괏값인 벡터 = "임베딩 벡터" - 밀집 표현 > 장점 : 1) 사용자가 설정한 차원수만큼으로 줄일 수 있다.2) 0, 1로만 구성된 것이 아니라, 0이상 1이하의 실수 값을 갖는다3) 단어 간 유사도를 담을 수 있다. - 분산표현 > 가정 : 비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다 (=분포가설)>.. 2020. 1. 28.
기계 언어 - 딥러닝을 이용한 자연어처리 입문 # 시퀀스 투 시퀀스 - 활용 방식 : 입력 문장이 있으면, 이에 대응되는 출력 문장이 있을때 활용 (말 그대로 sequence -> sequence) ex) 챗봇, 번역기, 내용 요약, 음성인식 - 특성 : RNN 구조와 거의 동일하나, 설계된 방식이 살짝 다를 뿐이다. > 앞서 다뤘던 RNN 의 경우, 하나의 단어가 입력된다면 그 이후의 모든 단어들을 예측해서 하나의 문장을 만들어내는 방식이었다. > 반면, seq2seq 은 하나의 입력 문장을 받아서 또 다른 문장 하나를 생성해내는 것이기 때문에, RNN 을 더 심화한 버전이다. - 구성 형태 : 인코더, 컨텍스트 벡터, 디코더 1) 인코더 : 입력된 문장이 있으면, 인코딩 처리해서 컨텍스트 벡터 형식으로 변형해서 전달> 이때, 인코더로 들어가기 전.. 2020. 1. 28.
어텐션 매커니즘 - 딥러닝을 이용한 자연어처리 입문 # 어탠션 매커니즘 - seq2seq 한계 :1) 하나의 고정 길이의 컨텍스트 벡터로 압축 -> 정보 손실 발생2) 원래의 시점으로부터 거리가 멀어질수록 기울기 소실 심화 - 어텐션 매커니즘의 기본 방식 : > 디코더에서 출력 단어를 예측할 매 시점마다, 인코더의 전체 문장 재참조 >단, 전체 문장의 모든 부분 참조 X -> 연관있는 단어만 조금 더 attention 을 갖고 집중 - key-value 방식이란 : > dictionary 자료형. 인덱스 값이 있고, 이에 대응되는 값이 매핑됨 - 어탠션 함수란 > 식 : Attention(Q, K, V) = Attention Value- Q : 쿼리- K : key 값- V : value 값 > 쿼리가 주어진다면, 해당 쿼리값이 각각의 key 값들과의 유.. 2020. 1. 28.
딥 러닝 개념 모음 - 딥러닝을 이용한 자연어처리 입문 # 퍼셉트론 : N 개의 입력값 X 를 받아서, 1개의 출력값 Y 를 만드는 모델 # 단층 퍼셉트론 + 시그모이드 활성화 함수 = 로지스틱 회귀 # 퍼셉트론 종류 1) 단층 퍼셉트론 : - 은닉층 X, 입력층과 출력층만 존재- 한계 : 다양한 출력값을 나타내지 못함2) 다층 퍼셉트론 - 정의 : 은닉층이 한 개 이상 존재- 심층 신경망 (DNN, Deep Neural Network) : 두 개 이상의 은닉층을 가진 경우 > 딥러닝 : 심층 신경망을 학습시키는 것- 의의 : 다양한 출력값을 나타낼 수 있음 (단층 퍼셉트론 한계 극복) # 퍼셉트론의 여러 개념 - 학습 : 매개변수 W (parameter) 를 최적 값으로 구해내는 과정 - 손실함수 : - 옵티마이저 : 손실함수 값을 최적으로 만드는 기법.e.. 2020. 1. 3.
문서 표현 방법 - 딥러닝을 이용한 자연어 처리 입문 # 문서 유사도 구하기 - 종류 : 코사인 유사도, 유클리드 거리, 자카드 유사도- 의의 : 카운트 기반 단어 빈도수 계산 가능 >> 문서 유사도 계산도 가능해졌다! 1. 코사인 유사도 https://wikidocs.net/24603 - 방식 : 두 벡터 사이의 코사인 각도를 이용1) DTM 또는 TF-IDF 행렬을 이용해서, 각 문서의 빈도를 벡터로 표현한다.2) 두 벡터의 내적 값 공식을 이용해서, 코사인 값을 구한다3) 코사인 값을 이용해서, 사잇각을 구한다. 각도가 작을수록, 유사한 문서다. 2. 유클리드 거리 https://wikidocs.net/24654 - 방식 : 그냥, 각 빈도수 값들의 거리 차 제곱 값들을 합해준다. 3. 자카드 유사도 https://wikidocs.net/24654 -.. 2019. 12. 28.
단어 표현 방법 - 딥러닝을 이용한 자연어처리 입문 # 단어 표현 방법 - 종류 : https://wikidocs.net/31767 1. 국소 표현 방법 (Local) : 딱 그 단어 자체만 보고 매핑하여서 표현함. 주변 단어들은 신경 X- '이산 표현 방법' 이라고 이해하면 더 쉽다. 2. 분산 표현 방법 (Distributed) : 주변에 무슨 단어가 있는지도 고려해서 매핑함. - '연속 표현 방법' 이라고 이해하면 쉽다. # 국소 표현 방법 (Local) - 종류 : 원 핫 벡터, N-gram, 카운트 기반 - 카운트 기반 기법 종류 : BoW, DTM, TF-IDF 1. BoW- 순서 :1) 문장 속 각 단어에 정수 인덱싱2) 각 인덱스 위치에 단어 토큰의 등장횟수 기록 벡터 만들기- 용도 : 1> 어떤 성격의 문서인지 판단2> 여러 문서들 간의 .. 2019. 12. 28.
용어 정리 - 위키 참조 ---------------------------------------------------------------------------------------------------------------------------------------------------- 하이퍼 파라미터 : 사용자가 직접 값을 선택하며 성능에 영향을 주는 매개변수를 말함https://en.wikipedia.org/wiki/Hyperparameter_(machine_learning) - 매개 변수 : 가중치와 편향과 같은 학습을 통해 바뀌어져가는 변수 >> 하이퍼파라미터는, 학습 이전에 사용자가 직접 선택한 값이다.https://wikidocs.net/32012 - fitting : 모델을 데이터의 값에 맞춰서 훈련하는 과정. .. 2019. 12. 28.
텍스트 전처리 - 딥 러닝을 이용한 자연어처리 입문 프로젝트 목록 : 문서 유사도를 이용한 자연어처리 기법 # 자연어 처리를 위한 준비단계 : 텍스트 전처리 - 종류 1 : 준비단계 1. 토큰화 : https://wikidocs.net/21698 - 단어/문장의 토큰화 : 각 패키지별로 다른 방식 적용함 - 토큰화에서 고려할 사항 : 구두점/특수문자 단순제외 ㄴㄴ, 줄임말과 단어 내에 띄어쓰기(접어)는 분리> 보완책 : 이진 분류기 - 한국어/영어 토큰화의 어려움 차이점 : 한국어가 토큰화가 더 어려움 - 품사 태깅 (팀플때 했던 것) 2. 정제 : 1) 규칙에 기반한 표기가 다른 단어들의 통합 : 어간/표제어 추출을 이용한 방법2) 대/소문자 통합3) 불필요한 단어 제거 : 빈도가 작거나, 길이가 짧은 단어 3. 정규화 : 좀 더 효율적인 방식으로 정제.. 2019. 12. 27.
(카이스트 강의) Hidden Markov Model # What/How model - 표현해야 하는 값들 : 공간적인게 아니라, 시간적인 것들 -> 각각의 데이터들이 independent 하지 않다 (시간의 흐름에 있어서, 서로 의존적이다) - 이를 표현하는 베이즈 네트워크 모양 : initial state가 다른 시간의 흐름들에게 연쇄적으로 작용한다-> 모두 dependent 하다 # Hidden Markov 의 구성 확률 1) State Transition Probability 2) State Emission Probability-> 내가 구해야 하는 것 : Hidden State!!!! Emission 상태를 보고, 현재 어떤 State에 있을지를 추측함 # HMM 의 기초 질문들 1) Evaluation Question- 정의 : π, a, b 가.. 2019. 8. 17.
(카이스트 강의) K-means, Gaussian Mixture Model #머신러닝의 종류1) 지도학습2) 비 지도학습3) 강화학습 # 비 지도학습 특징- true value가 무엇인지 모른다. #clustering의 문제- 문제 : 여러 case들이 있는데, 그 case가 어떤 군집에 속하는지 명확하게 판단하기힘든 경우가 있음 - 해결 방법 : K-Means 알고리즘 # K-means 알고리즘- 정의 : N개의 case들이 있을 때, K개의 추정되는 값들(Means, 평균값)을 구해내는 알고리즘. - 순서 : 1) K 개의 추정되는 값들을 정한다 (centroids) 2) 모든 case들에 대해, 자신과 가까운 centroid를 선정해서 clustering 한다-> 이 내용을 수식으로 나타낼 수 있다 # Expectation and Maximization - 순서 : 1) .. 2019. 8. 17.