제로부터 시작하는 코딩 생활
[모각코] DNN & Mnist 본문
DNN
DNN은 (Deep Neural Network, 심층신경망) 인공신공망의 한 종류로 입력층과 출력층 사이에 여러개의 은닉층들이 이루어져 있는 인공신경망이다.
입력 값에 대해 W와 b에 대해 Wx+b과정을 통한 뒤 활성화 함수가 있는 다음 layer를 거친다.
비선형성
여러개의 Layer는 하나의 수식으로도 설명이 가능하다. 그럼 왜 여러개의 Layer로 표현하는 걸까?
여러개의 Layer를 쌓는것 뿐만 아니라 Layer에 비선형 활성함수를 포함한다는것도 중요한 포인트이다.
고차원의 데이터들은 대부분 선형 관계가 아닌 비선형 관계이다. 선형함수들을 아무리 쌓아 올려봤자 선형관계를 가질것이다. 이것은 고차원의 비선형 문제를 해결하는데 전혀 적합하지 않다. 선형 Layer들 사이에 비선형 활성함수를 집어넣어 Deep 하게 쌓은것, 그것이 바로 DNN이다.
활성화함수
이때 사용되는 활성 함수는 여러 종류가 있는데 몇가지 소개해보자면 다음과 같다.
Loss function(손실함수)
예측값이 실제 값과 얼마나 유사한지 판단하는 기준. Loss function에도 여러가지가 있는데 대표적인것에는 다음과 같은 것들이 있다
Optimizer
손실함수가 최솟값을 가지도록 최적의 파라미터를 찾기위한 모델을 말한다. 이 과정을 통해 W와 b가 변할 수 있다.
Optimizer에도 다양한 종류가 있는데 대표적으로 다음과 같은 것들이 있다.
Mnist
Mnist는 손으로 쓴 숫자들로 이루어진 데이터셋이며, 기계학습의 성과를 벤치마킹하는데 가장 널리 사용된다.
오늘은 DNN을 활용한 모델로 Mnist 데이터셋을 분류하는 코드를 리뷰해보았다.
'제 1회 모각코' 카테고리의 다른 글
[모각코] RNN 순환신경망 (0) | 2022.11.30 |
---|---|
[모각코] CNN (0) | 2022.11.04 |
[모각코] MNIST 분류 모델 리뷰 (0) | 2022.10.14 |
[모각코] (Pytorch) Tensor 생성 과 연산 (2) | 2022.09.30 |