본문 바로가기
  • Quant & Data Science
코딩

딥러닝

by Jamalun 2021. 2. 24.

딥러닝 : 인공신경망에 기반하여 컴퓨터에게 사람의 사고방식을 가르치는 방법

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


댓글