1. 딥러닝이란?
- Deep Neural Network을 이용한 Machine Learning 방법
- Deep Neural Network: Hidden layer 수가 2개 이상인 network
Deep Learning의 목적
Deep Neural Network을 사용하여, 우리가 가진 data를 이용한 학습을 통해
학습에 사용하지 않았던 미지의 data가 들어왔을 때 무언가를 예측해보는 것
2. Perceptron의 이해
- 인공신경망의 기본 단위로 뉴런을 모방하여 만들어졌습니다.
- 수상돌기 또는 가지돌기는 이전 뉴런과 연결되는 부분으로 신호를 받아들입니다. (컴퓨터의 신호)
- 축삭돌기를 통해 다음 뉴런의 수상돌기로 전달됩니다. (신호들을 계산한 후 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 값들을 조금씩 바꿔주어야합니다.
요약
- 내가 가진 모든 training data에 대하여 Neural Network의 출력과 실제 정답(label)을 비교하여 각각의 Loss를 계산하고 이를 모두 더해서 전체 Loss를 계산합니다.
- 이 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 |
'컴퓨터 공부 > 데이터사이언스' 카테고리의 다른 글
정형 데이터/ 비정형 데이터 (0) | 2021.12.28 |
---|---|
크롤링이란(Crawling) (0) | 2021.12.28 |
텐서플로우(Tensorflow)와 파이토치(PyTorch) (0) | 2021.12.27 |
신경망 모델(Neural Networks) (0) | 2021.12.25 |
머신러닝(Machine Learning)이란? (0) | 2021.12.23 |
댓글