본문 바로가기
반응형

AI64

딥러닝) 손글씨 숫자 인식 MNIST 신경망 , 배치 batch 처리 신경망 구조를 손글씨 숫자 분류 문제를 해결하는데 적용해볼 것이다. 기계학습의 문제 풀이는 학습과 추론 단계를 거친다. 학습 단계에서는 모델을 학습하고, 추론 단계에서는 학습한 모델로 예측해야하는 데이터에 대해 추론을 수행하는 것이다. 신경망도 마찬가지로 두 단계를 거친다. 훈련 데이터를 사용하여 가중치 매개변수를 학습하고, 추론 단계에서는 학습한 매개변수를 사용하여 입력 데이터를 분류한다. 이번 포스팅에서는 학습 단계를 생략하고, 순전파(foward propagation)라고도 불리는 '추론 과정'을 구현해볼 것이다. 1. MNIST 데이터셋 MNIST dataset은 0~9까지 숫자 이미지 데이터이다. Training dataset은 60,000개이고 Test dataset은 10,000개이다. Tr.. 2021. 2. 18.
딥러닝) 소프트맥스 함수로 출력층 설계 Machine Learning은 분류(classificaton)와 회귀(regression)로 나뉘며, 이 데이터 클래스에 따라 출력층에서 사용하는 활성화 함수가 다르다. 일반적으로 회귀에서는 항등 함수를 사용하고 분류에서는 소프트맥스 함수를 사용한다. 항등 함수(identity function)는 입력값을 그대로 출력하는 함수이고, 소프트맥스 함수(softmax function)는 다음과 같다. 1. 소프트맥스 함수 소프트맥스 함수는 분자는 k번째 입력 신호의 지수 함수로, 분모는 모든 입력 신호의 지수 함수의 합으로 이루어진 함수이다. 2. 소프트맥스 함수 구현 시 주의점 소프트맥스 함수는 지수 함수를 사용하는데, 지수 함수는 기하급수적으로 증가하는 함수이므로 오버플로 문제가 발생할 수 있다. 이러한.. 2021. 2. 14.
딥러닝) 다차원 배열, 신경망 구현 1. 넘파이를 사용하여 다차원 배열 작성 np.array 배열 작성 np.ndim 배열 차수 확인 shape 배열 형상 튜플로 확인 2. 넘파이를 사용하여 행렬의 곱 작성 np.dot 행렬의 곱 3. 3층 신경망 구현 init_network 함수는 가중치와 편향을 초기화하는 함수이고, forward 함수는 입력신호에서 출력값으로 변환하는 함수이다. 다음 포스팅에서는 소프트맥스 함수를 이용하여 출력층 설계하는 것을 다룰 것이다. 출처: 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, 한빛미디어(2017), p77-90 2021. 2. 13.
딥러닝) 활성화 함수 Activation Functions 이번 포스팅에서는 신경망에서 활성화 함수로 어떤 함수를 이용하는 지 살펴볼 것이다. 신경망에서는 활성화 함수로 비선형 함수를 사용해야 한다. 그렇지 않고 선형 함수를 사용할 경우, 신경망의 층을 깊게하는 의미가 없어진다. 즉, 층을 깊게 해도 은닉층 없는 네트워크로 대체할 수 있게 된다. > 선형 함수란? 특정 입력값에 대한 출력값이 입력값의 상수배만큼 변하는 함수, f(x) = ax + b > 비선형 함수란? 직선 1개로는 그릴 수 없는 선형이 아닌 함수 ★예를 들어, h(x) = cx 를 활성화 함수로 사용한 3층 네트워크를 생각해보면 y(x) = h(h(h(x))) 가 된다. 계산해보면 y(x) = c*c*c*x 로 층을 쌓듯 세 번 계산하지만 y(x) = ax 로 치환할 경우, 은닉층이 없는 네트.. 2021. 2. 10.
728x90
반응형