신경망 시작하기
1. 신경망의 구조
- 신경망은 아래와 같은 각각의 구조를 가진다.
- 네트워크(또는 모델)을 구성하는 층
- 입력 데이터와 그에 상응하는 타깃
- 학습에 사용할 피드백 신호를 정의하는 손실함수
- 학습 진행 방식을 결정하는 옵티마이저
- 층 : 층은 하나이상의 텐서를 입력으로 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈
- 모델 : 딥러닝 모델은 층으로 만든 비순환 유향 그래프를 말한다.
- 비순환 유향 그래프 : 방향 순환이 없는 무한 유향 그래프를 말한다.
- 모델(네트워크 구조)는 가설공간을 정의한다. 즉, 네트워크 구조를 선택함으로써 가능성 있는 공간(가설공간)을 입력 데이터에서 출력 데이터로 매핑하는 일련의 특정 텐서 연산으로 제한한다.
- 손실함수 : 목적함수라고도 하며 훈련하는 동안 최소화 되어야 하는 값을 말한다.(문제에 맞는 목적 함수를 설정해야 한다!!)
- 옵티마이저 : 손실 함수를 기반으로 네트워크가 어떻게 업데이트 될지 결정한다.
비순환 유향 그래프의 위상정렬(출처 : 위키)
각각의 과정의 관계 출처 : Passive Incomer’s Active Life 블로그
2. 케라스 소개
- 케라스는 거의 모든 종류의 딥러닝 모델을 간편하게 만들고 훈련시킬 수 있는 파이썬을 위한 딥러닝 프레임워크를 말한다.
- 케라스의 특징
- 동일한 코드로 CPU와 GPU에서 실행이 가능하다.
- 사용하기 쉬운 API를 가지고 있다.
- (컴퓨터 비전을 위한)합성곱 신경망, (시퀀스 처리를 위한)순환 신경망을 지원하며 이 둘을 자유롭게 조합하여 사용이 가능하다.
- 다중 입력이나 다중 출력 모델, 층 공유, 모델 공유 등 어떤 네트워크 구조도 가능하며 이는 즉 모든 딥러닝 모델에 사용이 가능함을 시사한다.
Leave a comment