본문 바로가기
컴퓨터 공부/데이터사이언스

딥러닝(Deep Learning)이란?

by 구깨비 2021. 12. 26.

1. 딥러닝이란?

- Deep Neural Network을 이용한 Machine Learning 방법

- Deep Neural Network: Hidden layer 수가 2개 이상인 network

Deep Learning의 목적
Deep Neural Network을 사용하여, 우리가 가진 data를 이용한 학습을 통해
학습에 사용하지 않았던 미지의 data가 들어왔을 때 무언가를 예측해보는 것 

2. Perceptron의 이해

- 인공신경망의 기본 단위로 뉴런을 모방하여 만들어졌습니다.

 

출처: https://www.ksakosmos.com/post/%EB%87%8C%EC%99%80-%EB%98%91%EA%B0%99%EC%9D%80-%EC%A0%84%EA%B8%B0-%ED%9A%8C%EB%A1%9C-%EC%A0%84%EC%9E%90-%EB%89%B4%EB%9F%B0-%EB%AA%A8%EB%8D%B8

  1. 수상돌기 또는 가지돌기는 이전 뉴런과 연결되는 부분으로 신호를 받아들입니다. (컴퓨터의 신호)
  2. 축삭돌기를 통해 다음 뉴런의 수상돌기로 전달됩니다. (신호들을 계산한 후 output)
Artificail Neural Network(ANN) , 인공신경망

- Artificail Neural Network : Perception을 여러개 연결한 것 (더 복잡하고 어려운 문제를 풀 수 있습니다.)

- Artificail Neural Network의 학습 : 우리가 원하는 목표를 달성하기 위한 weight 값들을 찾아내는 과정

Single-Layer Perceptron & Multi-Layer Perceptron(MLP)

- ouptput layer만 카운트해서 세줍니다.

- 멀티레이어는 hidden layer가 한 개 이상인 경우 MLP가 됩니다.

- 왜 hidden이라는 이름이 붙었을까? 중간단계는 어떻게 나올지 모르기 때문에.

 

3. Gradient Descent 원리 이해

 

Weight 초기화

Loss Function(Cost Function)

- Neural Network이 얼마나 못하는지에 대한 척도를 구할 때 사용합니다. (Loss Function / Cost Function)

- Loss Function 의 값이 줄어들도록  weight 값들을 조금씩 바꿔주어야합니다.

요약
  1. 내가 가진 모든 training data에 대하여 Neural Network의 출력과 실제 정답(label)을 비교하여 각각의 Loss를 계산하고 이를 모두 더해서 전체 Loss를 계산합니다. 
  2. 이 loss를 weight로 미분한 다음 그 미분값(gradient)이 가리키는 방향의 반대방향으로  weight값을 아주 조금씩 바꿔나갑니다.

-> 그런데 내가 가진 data가 아주 많은데 weight값을 조금 바꾸기 위해서, 모든 data에 대한 loss를 다 계산해주어야 합니다. 

-> data가 많아질 수록 학습이 느려집니다.

-> 일부 data가 전체 training data를 대표한다고 가정해서 이 data들로만 loss를 계산하여 weight를 update해도 되지않을까?

Batch Gradient Descent Stochastic Gradient Descent Mini-batch Gradient Descent
모든 data에 대해서 loss를 계산하여 다 더하고 이를 이용해서 GD Data를 1개만 뽑고, 그 1개의 data에 대한 loss를 이용하여 GD batch/Stochastic의 중간 형태로 data를 n개 뽑고 그 n개의 data에 대한 loss를 계산하여 다 더한 뒤 이를 이용하여  GD -> 제일 많이 사용!

4. OverFitting

- Training data에 너무 최적화(fitting)를 함으로 인해 일반화 성능이 떨어지는 현상

OverFitting을 막는 방법
1. 데이터 양을 늘린다
2. Regularization 방법을 사용한다.

 

DataSet 나누기

 

Training set Validation set Test set
학습에 사용하는 data 학습에 사용하지 않고, hyper parameter tuning에 사용하는 data 학습이 끝난 후에 model을 평가하기 위한  data

 

댓글