머신러닝, 딥러닝 ML, DL/이론 15

[Deep Learning] 5. 배치, 미니배치, 수치 미분, 기울기

전 포스팅에서 신경망 학습과 손실 함수에 대해 알아봤습니다. 이번에는 미니배치, 수치 미분, 기울기에 대해 다뤄보겠습니다. 이 전의 포스팅과 같이 구현과 관련된 내용은 제 깃허브 링크를 참고해주시기 바랍니다. https://github.com/Kingnamji/BigAI/blob/main/%EB%B0%91%EC%8B%9C%EB%94%A51_re/04_NNTrain.ipynb 미니배치 신경망의 학습은 훈련데이터로부터 이뤄진다고 했습니다. 학습동안 훈련데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾습니다. ( 이 내용은 https://kingnamji.tistory.com/18 에서 다뤘습니다. ) MNIST 데이터셋의 경우 훈련 데이터의 갯수가 60,000개 입니다. 이렇게..

[Deep Learning] 4.신경망 학습, 손실 함수(오차제곱합, 교차 엔트로피 오차)

신경망과 활성화 함수에 이어 이번에는 신경망 학습, 수치 미분, 손실 함수, 배치(미니 배치)에 대해 정리하겠습니다. 추후에 좀 더 깊게 볼 필요가 있다고 판단되는 내용은 따로 포스팅을 해보겠습니다. 구현과 함께 보고싶으시면 아래 제 깃허브 링크를 참고해주시기 바랍니다. https://github.com/Kingnamji/BigAI/blob/main/%EB%B0%91%EC%8B%9C%EB%94%A51_re/04_NNTrain.ipynb 학습 신경망에서 말하는 학습은 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 갱신(update)하는 것을 말합니다. 학습을 위한 지표로는 손실 함수(loss function)을 사용합니다. 손실 함수의 값을 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표입니다..

[Deep Learning] 3. 출력층의 소프트맥스 함수(Softmax), 항등 함수

출력층 설계 신경망의 출력층(Output Layer)에서 사용하는 활성화 함수는 현재 해결해야하는 문제가 무엇인지에 따라 달라집니다. 문제는 크게 분류(classification)와 회귀(regression)으로 나뉩니다. 분류는 데이터가 어느 범주, 클래스에 속하는지를 맞춰야하는 문제(ex : 10대 or 20대 or 30대 이상)고, 회귀는 수치를 예측해야하는 문제(ex : 182.1cm)입니다. 항등 함수 항등 함수(identity function)은 입력 신호를 그대로 출력합니다. 소프트맥스 함수 분류에서 사용하는 소프트맥스 함수(softmax function)의 식을 한번 보겠습니다. $y_k = \frac{e^{a_k}}{\sum_{i=1}^{n}e^{a_i}}$ $e^{x}$ 는 지수 함수,..

[Deep Learning] 2. 신경망, 활성화 함수(시그모이드 Sigmoid, 렐루 Relu)

퍼셉트론에서는 가중치 값 (예시에서 $w1, w2, b$) 를 직접 설정했습니다. 반면에 신경망(인공 신경망이라고도 부름)에서는 가중치 매개변수의 적절한 값을 데이터로부터 '학습'해서 정합니다. 신경망 신경망의 구조는 아래와 같습니다. Input Layer - Hidden Layer - Output Layer ( 입력층 - 은닉층 - 출력층 ) 앞서 봤던 퍼셉트론의 구조와 비슷합니다. 퍼셉트론을 다시 수식으로 한번 표현해보겠습니다. $y = \begin{pmatrix}0\;(b + w1x1 + w2x2 \leq 0 )\\1\;(b + w1x1 + w2x2 > 0)\end{pmatrix}$ (b는 편향 w1, w2는 가중치) 이때 함수 $h$ 를 $h(x) = \begin{pmatrix}0\;(x \leq..

[Deep Learning] 1. 퍼셉트론, Perceptron

퍼셉트론 퍼셉트론(perceptron) 알고리즘은 신경망(딥러닝)의 기원이 되는 알고리즘입니다. 퍼셉트론은 다수의 신호를 입력받고 하나의 신호를 출력하는 구조입니다. (적어도 하나의 output을 출력합니다.) 퍼셉트론은 신호가 흐른다 또는 흐르지 않는다. (각각 1과 0)의 두가지 값을 가집니다. 그림은 입력으로 2개의 신호를 받는 퍼셉트론입니다. x1, x2는 입력 신호, w1, w2는 가중치 y는 출력 신호입니다. 원은 뉴런 혹은 노드라고 부릅니다. 신호가 다음 노드로 보내질 때는 각각 고유한 가중치가 곱해집니다. 위의 예시에서는 y = w1x1 + w2x2로 나타낼 수 있으며 신호의 총합이 정해진 임계값을 넘으면 1을 출력합니다. 이때 임계값은 theta 또는 T로 주로 표시합니다. 퍼셉트론의 동..