딥러닝 스터디 2일차

정강훈·2021년 12월 26일
0

신경망의 구조

신경망은 위 그림과 같이 네트워크를 구성하는 층, 손실 함수, 옵티마이저로 이루어진다.

보통 코딩을 하게되면

다음과 같은 형식으로 코드를 작성하는데
처음 추가한 층은 입력층으로 input_shape을 입력해줘야 한다. 여기서는 28 x 28 크기의 이미지를 입력하기 때문에 784로 설정해주었다.

영화 리뷰 분류 문제도 다루었는데, 이진 분류 문제였다.
단어 10,000개를 원핫인코딩으로 10,000차원의 데이터로 만들고, 신경망 학습을 진행하였다.

출력층은 확률로 출력하기 위해 이진분류에서는 sigmoid를 사용하였다.

이 다음 예제인 뉴스 기사 분류 코드에서는 46개의 아웃풋 확률을 출력하기 위해 합이 1이되는 softmax 함수를 사용해 출력한다.

마지막 출력의 유닛수가 46이면, 병목현상이 발생하지 않게 하기 위해 그 전 층은 46 이상의 수가 되어야 한다.
보통 은닉층을 입력할 때 유닛의 수를 2의배수로 하는데, 그 이유는 컴퓨터가 2진수로 처리를 하기 때문에, 2의 배수를 사용해 최적화를 하며, 2의 배수가 아닐경우 컴퓨터가 여러번 일을 처리해 속도가 떨어진다고 한다.

회귀 문제에서는 출력층이 하나의 유닛이라 활성화 함수를 사용하지 않았다. 손실함수는 평균제곱오차인(MSE) 를 사용하였고, 평가지표로는(MAE)를 사용하였따.

부록

인공지능을 학습시키는 환경은 윈도우보다는 리눅스를 권장한다고 한다.
여러 이유가 있겠지만 속도가 빠른 이유가 가장 많은 비중을 차지하는 것 같다.

나는 현재 AMD CPU와 AMD 그래픽카드를 사용하고 있지만, 인공지능 분야를 공부하기 위해 CPU는 Intel, 그래픽카드는 NVIDIA사를 권장한다고 한다.
그래픽 카드를 NVIDIA를 권장하는 이유로는 텐서플로와 같은 인공지능 라이브러리들이 대부분 CUDA 기반이라서 NVIDIA가 적합하고, GPU 가속도 중요한 이유이다.

0개의 댓글