본문 바로가기
반응형

deep learning17

[NLP] NLP briefing 본 글은 '파이토치로 배우는 자연어 처리(Natural Language Processing with PyTorch)'를 참고하여 정리한 글입니다. NLP 기술 훑어보기 말뭉치 고전이나 현대의 모든 NLP 작업은 말뭉치(corpus, 복수형 corpora)라 부르는 텍스트 데이터로 시작합니다. 말뭉치는 일반적으로 원시 텍스트(ASCII나 UTF-8 형태)와 이 텍스트에 연관된 메타데이터(metadata)를 포함합니다. 원시 텍스트는 문자(바이트) 시퀀스지만 일반적으로 문자를 토큰(token)이라는 연속된 단위로 묶었을 때 유용하고, 영어에서 토큰(token)은 공백 문자나 구두점으로 구분되는 단어와 숫자에 해당합니다. 메타데이터는 식별자, 레이블, 타임스탬프 등 텍스트와 관련된 어떤 부가 정보도 될 수 있.. 2022. 5. 4.
[NLP] NLP Introduction 해당 포스팅은 '파이토치로 배우는 자연어 처리(Natural Language Processing with PyTorch)'를 참고하여 정리한 글입니다. NLP (Natural language processing) NLP는 언어학 지식에 상관없이 텍스트를 이해하는 통계적인 방법을 사용해 실전 문제를 해결하는 일련의 기술입니다. 텍스트의 이해는 주로 텍스트를 계산 가능한 표현으로 변환함으로써 이루어지고, 이 표현은 벡터, 텐서, 그래프, 트리같이 이산적이거나 연속적으로 조합한 구조입니다. 딥러닝 계산 그래프(computational graph)와 수치 최적화 기술을 사용해 데이터에서 표현을 효과적으로 학습하는 기술 파이토치 딥러닝 알고리즘을 구현하는 파이썬 기반의 계산 그래프 프레임워크 지도 학습 머신러닝에.. 2022. 5. 3.
[DL] CNN (Convolutional Neural Network) 합성곱 신경망 (CNN, Convolutional Neural Network) 지금까지 본 신경망은 인접하는 계층의 모든 뉴런과 결합되어 있었습니다. 이를 완전 연결(Fully-connected, 전결합)이라고 하며, 완전히 연결된 계층을 Affine 계층이라는 이름으로 표현했습니다. CNN에서는 새로운 ‘합성곱 계층(Conv)과 풀링 계층(Pooling)이 추가됩니다. CNN의 계층은 ‘Conv-ReLU-(Pooling)’흐름으로 연결되고 풀링 계층은 생략하기도 합니다. 출력에 가까운 층에서는 ‘Affine-ReLU’ 구성을 사용할 수 있고, 마지막 출력 계층에서는 ‘Affine-Softmax’ 조합을 그대로 사용하기도 합니다. 합성곱 계층 완전 연결 계층(Affine 계층)의 문제점과 CNN 완전 연.. 2022. 3. 29.
[Paper Review] N-BEATS N-BEATS (Neural basis expansion analysis for interpretable time series forecasting) 지금까지 대회에서 1등을 하던 모델은 항상 통계기반 모델이었지만 M4 Competition에서 우승을 차지한 모델은 ES-RNN(Exponential Smoothing Long Short Term Memory networks) 으로 통계적 방법론과 머신러닝 방법론을 잘 섞은 구조의 모델입니다. 그런데 그 ES-RNN보다 더 좋은 예측 성능을 보이는 순수 머신러닝 방법론이 등장했고, 그게 바로 N-BEATS or NBEATS 라고 불리는 단변량 예측 모델입니다. N-Beats는 Time Series(시계열 데이터)를 처리하기 위해 end-to-end deep.. 2022. 3. 28.
[Paper Review] Transformer - Attention is all you need 본 글은 카이스트 최윤재 교수님의 Programming for AI (AI504, Fall 2020), Class 9: Recurrent Neural Networks와 WikiDocs의 딥 러닝을 이용한 자연어 처리 입문을 바탕으로 정리한 글입니다. https://jalammar.github.io/illustrated-transformer/ 도 참고하여 작성하였습니다! Transformer 기존 seq2seq의 구조인 인코더, 디코더를 발전시킨 딥러닝 모델입니다. 가장 큰 차이점은 RNN을 사용하지 않고 Attention만으로 구현했다는 데 있습니다. Transformer를 한 단어로 표현하자면 Parallelization(병렬화)입니다. RNN의 순차적인 계산을 행렬곱으로 한 번에 처리합니다. 전체 과.. 2022. 3. 28.
[NLP] Attention Mechanism 본 글은 카이스트 최윤재 교수님의 Programming for AI (AI504, Fall 2020), Class 9: Recurrent Neural Networks와 WikiDocs의 딥 러닝을 이용한 자연어 처리 입문을 바탕으로 정리한 글입니다. Attention Mechanism (어텐션 메커니즘) 인코더에서 입력 시퀀스를 컨텍스트 벡터라는 하나의 고정된 크기의 벡터 표현으로 압축하고, 디코더는 이 컨텍스트 벡터를 통해서 출력 시퀀스를 만들어낸 RNN에 기반한 seq2seq 모델에는 크게 두 가지 문제가 있습니다. 하나의 고정된 크기의 벡터에 모든 정보를 압축하려고 하니까 정보 손실이 발생합니다. RNN의 고질적인 문제인 기울기 소실(vanishing gradient) 문제가 존재합니다. 결국 이는.. 2022. 3. 28.
[NLP] GRU (Gated Recurrent Unit) 본 글은 카이스트 최윤재 교수님의 Programming for AI (AI504, Fall 2020), Class 9: Recurrent Neural Networks와 WikiDocs의 딥 러닝을 이용한 자연어 처리 입문을 바탕으로 정리한 글입니다. GRU (Gated Recurrent Unit) 게이트 메커니즘이 적용된 RNN 프레임워크의 일종 기존 LSTM의 구조를 조금 더 간단하게 개선한 모델 LSTM의 장기 의존성 문제에 대한 해결책을 유지하면서, 은닉 상태를 업데이트하는 계산을 줄임 LSTM와 달리 출력 게이트가 없는 간단한 구조 마지막 출력값에 활성화 함수를 적용하지 않습니다. 성능 면에서는 LSTM과 비교해서 우월하다고 할 수 없지만 학습할 파라미터(가중치)가 더 적은 것이 장점 분설 결과가.. 2022. 3. 28.
[NLP] LSTM (Long Short-Term Memory, 장단기 메모리) 본 글은 카이스트 최윤재 교수님의 Programming for AI (AI504, Fall 2020), Class 9: Recurrent Neural Networks와 WikiDocs의 딥 러닝을 이용한 자연어 처리 입문을 바탕으로 정리한 글입니다. 장단기 메모리 (Long Short-Term Memory, LSTM) 바닐라 RNN 이후 바닐라 RNN의 한계를 극복하기 위한 다양한 RNN의 변형이 나왔고, LSTM도 그중 하나입니다. LSTM은 RNN의 특별한 한 종류로, 긴 의존 기간을 필요로 하는 학습을 수행할 능력을 갖고 있습니다. Vanilla RNN의 한계 앞 챕터에서 바닐라 RNN은 출력 결과가 이전의 계산 결과에 의존한다는 것을 언급한 바 있습니다. 하지만 바닐라 RNN은 비교적 짧은 시퀀스.. 2022. 3. 28.
[NLP] RNN (Recurrent Neural Network) 본 글은 카이스트 최윤재 교수님의 Programming for AI (AI504, Fall 2020), Class 9: Recurrent Neural Networks와 WikiDocs의 딥 러닝을 이용한 자연어 처리 입문를 바탕으로 정리한 글입니다. 순환 신경망 (Recurrent Neural Network, RNN) 입력과 출력을 시퀀스 단위로 처리하는 모델을 시퀀스 모델이라 하는데, RNN은 딥러닝에 있어 가장 기본적인 시퀀스 모델이고 자연어 처리(NLP)와 TimeSeries data에 활용됩니다. 용어는 비슷하지만 순환 신경망과 재귀 신경망(Recursive Neural Network)은 전혀 다른 개념입니다. 피드 포워드 신경망(Feed Forward Neural Network)은 은닉층에서 활.. 2022. 3. 28.
[DL] 배치 정규화(Batch Normalization), 가중치 감소(weight decay), 드롭아웃(Dropout) 배치 정규화 (Batch Normalization) 각 층이 활성화를 적당히 퍼뜨리도록 해봅시다. 2015년에 제안된 방법이지만 주목받고 있습니다. 주목받는 이유는 학습을 빨리 진행할 수 있음 초기값에 크게 의존하지 않음 오버 피팅을 억제 배치 정규화의 기본 아이디어는 다음과 같습니다. 각 층에서의 활성화값이 적당히 분포되도록 조정 그래서 데이터 분포를 정규화하는 ‘배치 정규화(Batch Norm) 계층’을 신경망에 삽입 학습 시 미니배치를 단위로 정규화 (이름 보면 알 수 있음) 구체적으로는 데이터 분포가 평균이 0, 분산이 1이 되도록 정규화 평균 0, 분산 1인 데이터로 변환하는 처리를 활성화 함수의 앞 혹은 뒤에 삽입함으로써 데이터 분포가 덜 치우치게 할 수 있음 또, 배치 정규화 계층마다 이 정.. 2022. 3. 17.
[DL] 신경망 학습 - 매개변수 갱신, 가중치의 초기값 매개변수 갱신 최적화(Optimization) 신경망 학습의 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것 곧 매개변수의 최적 값을 찾는 문제를 푸는 것 신경망 최적화는 굉장히 어려운 문제 매개변수 공간은 매우 넓고 복잡해서 최적의 설루션을 쉽게는 못 찾음 확률적 경사 하강법(SGD) 최적화 방법 중 가장 널리 사용되는 SGD(Stochastic Gradient Descent)입니다. 매개변수의 기울기(미분)를 이용해 최적화를 시도합니다. SGD는 다음과 같은 단점이 존재합니다. SGD는 단순하고 구현도 쉽지만, 문제에 따라서는 비효율적일 때가 있습니다. 비등방성(anisotropy) 함수(방향에 따라 성질, 즉 기울기가 달라지는 함수)에서는 탐색 경로가 비효율적입니다. 이럴 때는 SGD.. 2022. 3. 17.
[DL] 오차역전파법(Backpropagation) 오차역전파법(Backpropagation) 기울기 계산을 효율적이고, 고속으로 수행하는 기법입니다. 오차역전파법을 쓰면 수치 미분을 사용할 때와 거의 같은 결과를 훨씬 빠르게 얻을 수 있다는 장점이 존재합니다. 신경망 학습은 시간이 오래 걸리니, 시간을 절약하려면 오차역전파법 사용하는 것이 좋습니다! 말 그대로 오차역전파법은 순전파의 반대로 간다고 생각하시면 됩니다. 본 글에서는 수식이 아닌 계산 그래프를 통해 오차역전파법을 설명하겠습니다. 계산 그래프(computational graph) 계산 과정을 그래프로 나타낸 것입니다. 복수의 노드(node)와 에지(edge)로 표현합니다. 노드 : 원으로 표현하고 원 안에 연산 내용 적음 에지 : 노드 사이의 직선 계산 그래프의 특징은 국소적 계산을 전파함으로.. 2022. 3. 8.
반응형