딥러닝 : 인공신경망에 기반하여 컴퓨터에게 사람의 사고방식을 가르치는 방법
input layer---> hidden layer---> output layer
모델 스스로 데이터의 특성(feature)을 학습하여 지도학습, 비지도학습 모두 가능
퍼셉트론 1958년 -->first ai winter--> 1969~1986boom times -->1990 second ai winter --->2012 revolution
퍼셉트론의 기본구조
x1, x2, x3 를 가중치를 더해 input 한 후 활성화 함수(Activation Function) 에 넣기
퍼셉트론 선형분류기와 논리회로
- And gate
- Or gate
- NAND)(NOT-AND) gate
- NOR(NOT-OR) gate
0,1을 계산하던 퍼셉트론 논리회로에서 확장. 선형분류기로써 데이터 분류 가능.
XOR 논리게이트 : 둘 중의 한개만 확실히 참일 때 참. ---> 비선형적 접근 방법의 필요성(하나의 레이어를 사용하는 것은 불가능)
하지만 NAND와 OR연산을 함께 사용할 시 표현 가능
이렇게 단층 퍼셉트론을 여러 개 쌓은 것을 다층 퍼셉트론(Multi Layer Perceptron)이라 부름
hidden layer가 3개 이상일 때 deep learning 이라 함.
딥러닝 모델의 학습방법 : Loss function을 최소화하기 위해 최적화 알고리즘을 적용
Loss function : 예측값과 실제값 간의 오차값
Optimization : 오차값을 최소화하는 모델의 인자를 찾는 것
가장 기본적인 최적화 알고리즘 : Gradient Descent(GD)경사하강법
이외에도 SGD, mini batch 경사하강법, 모멘텀
딥러닝에서는 역전파(Backpropagation)을 통해 각 가중치들의 기울기를 구할 수 있음, 80년대에 boom한 개념.
나의 목표 target값과 실제 모델이 예측한 output값이 얼마나 차이나는지 구한 후 오차값을 다시 뒤로 전파해가며 변수들을 갱신하는 알고리즘. forward progpagation과 방향이 반대.
순전파(forward propagation)
텐서플로우 : 가장 많이 쓰이는 딥러닝 프레임워크
- 상수텐서 : value 반환하는 상수값, shape Tensor의 차원, dtype 반환하는 Tensor의 타입, name 텐서 이름
- 시퀀스텐서 : start 시작값, stop 끝값, num 생성할 데이터 개수, name 텐서의 이름
- 변수텐서 : initial_value 초기값, dtype 반환하는 Tensor 타입, name 텐서의 이름
텐서플로우 자료형
- tf.float32 : 32-bit float
- tf.float64 : 64-bit float
- tf.int8 : 8-bit integer
- tf.int16 : 16-bit integer
- tf.int32 : 32-bit integer
- tf.uint8 : 8-bit unsigned integer
- tf.string : String
- tf.bool : Boolean
이항 연산자
- tf.add(x, y) : x 텐서와 y 텐서를 더합니다.
- tf.subtract(x, y) : x 텐서에서 y 텐서를 뺍니다.
- tf.multiply(x, y) : x 텐서와 y 텐서를 곱합니다.
- tf.truediv(x, y) : x 텐서를 y 텐서로 나눕니다.
데이터셋 준비하기
Epoch : 한 번의 epoch는 전체 데이터셋에 대해 한 번 학습을 완료한 상태
batch : 나눠진 데이터셋(보통 mini-batch라고 함)
iteration : epoch를 나누어서 실행한 횟수
keras 활용 : 텐서플로우의 패키지로 제공되는 고수준 API
Keras메소드를 사용해야함.
언어모델(LM) : 언어 모델은 단어 시퀀스에 확률을 할당(assign)하는 일을 하는 모델, 방법은 크게는 통계를 이용한 방법(SLM)과 인공 신경망을 이용한 방법으로 구분
언어 모델링(Language Modeling) : 주어진 단어들로부터 아직 모르는 단어를 예측하는 작업
N-gram : 여전히 카운트에 기반한 통계적 접근을 사용하고 있으므로 SLM의 일종
워드임베딩 : 단어들을 의미가 유사한 단어가 벡터 공간에 가까이 있도록 Mapping 시키는 작업을 의미, 특정 함수로 우리가 원하는 차원으로 단어의 벡터를 Embedding 함.
RNN :
LSTM :RNN에 장기기억 기능을 추가한 것, RNN의 기울기 소실 문제를 해결해줌.
'딥러닝을 이용한 자연어처리 입문' 책 참고하기
wikidocs.net/book/2155
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
케라스 가이드
keras.io/guides/
Keras documentation: Developer guides
» Developer guides
keras.io
'코딩' 카테고리의 다른 글
| Jupyter Notebook, Anaconda 가상환경, 버전관리 (0) | 2021.09.14 |
|---|---|
| Line Feed, Carriage Return//Command-line Arguments (0) | 2021.09.14 |
| 수학 공부의 중요성 체감 (0) | 2021.09.13 |
| 서울산업진흥원, 아시아경제, 엘리스 주관 '4차산업 SW기초역량 아카데미' 후기 (0) | 2021.03.15 |
| 내가 프로그래밍 공부를 시작한 이유/ 앞으로의 방향성 (0) | 2021.01.22 |
댓글