인공신경망 5

AdaGrad/RMSprop/Adam 이란?

모두 기존의 grdient descent에서 발생할 수 있는 문제점들을 보완하여. 각각의 의도를 가지고 gradient descent를 조금씩 변형시킨 것. 그래서 각각의 방식이 무엇을 의도하고 어떻게 바꿨는지 살펴봅시다.  AdaGrad기존의 GD에서 무엇을 바꿨는지. 기존의 GD는 여기서 학습률 α는 update 되는 정도를 결정하는 값으로, 이 값이 고정되어 있는데, 이게 비효율적입니다.  왜? 학습률이 너무 작으면 빠르게 update 해야 하는 학습 초기부터 시간이 오래 걸린다. 학습률이 너무 크면 0근처에서 천천히 update해야 하는데 optimal point를 놓칠 수 있다.  그래서 초기에는 update 되는 정도를 크게 하고학습 뒤쪽으로 갈수록 점차 update 되는 정도를 작게 할 필요..

인공신경망 2024.11.03

Stochastic gradient descent (SGD)

SGD란?grdient descent를 할 때 데이터 전체를 전부 쓰는 것이 아니라배치(데이터 전체보다 작은 규모의 데이터 세트)마다 한 번씩 update 하는 방법. 전체 데이터를 n 개의 배치데이터로 각각 분할하여 n 개의 set을 구성합니다. 그리고 각각의 배치데이터로 목적함수를 구성하여 목적함수를 최적화하도록gradient descent로 w를 update 하는데 (그냥 gradient descent 과정..) 이때 각 배치데이터를 순회하며 목적함수를 계속해서 재구성합니다.("재구성"이 중요합니다. update할때 목적함수를 계속 바꾼다.)  이거 왜 하는지 쉬운 이유로는 딥러닝에서는 데이터의 크기가 크면 layer가 깊어질수록 학습해야 하는 파라미터 수도 많아져 학습이 오래 걸린다. 작은 크기의..

인공신경망 2024.10.30

오버피팅(overfitting) 해결 및 방지 방법

주로 신경망 학습에서 발생하는 오버피팅을 해결하기 위한 방법을 살펴봅니다.1.drop out이름에서 알 수 있듯, 인공신경망을 구성하는 뉴런들을 "전부" 활성화하는 것이 아니라일부를 끄고 반복적으로 뉴런의 활성화 상태를 재구성한다. 이게 왜 오버피팅을 방지하는지? train data에 대해  학습할 때 모델이 fit 되는 상황을 살펴보면 이해할 수 있다.아래는 어디서든 볼 수 있는 오버피팅을 설명하는 그래프다  train에 과도하게 학습할수록 test data에 대해서는 loss가 커지는 것이 오버피팅 학습 초기에는 모델이 train과 test에 공통된 특징들을 위주로 학습합니다. train에 대한 학습이 길어지면 train에만 존재하는덜 중요한 특징들에 대해 학습하게 되는데.. 이것이 오버피팅 따라서 ..

인공신경망 2024.10.29

역전파(Backpropagation)/vanishing gradient problem

역전파란?MLP(multi-layer-perceptron)와 같은 여러 층이 존재하는 모델에서 gradient descent를 하기 위해gradient 값을 구하는 수학적 방법. 모든 기계학습에서는loss 함수 최적화를 위해 모수 w에 대한 gradient 값이 필요했었습니다.그런데 인공신경망과 같은 여러 층을 가지는 모델에서는 어떤 하나의 w에 대한 미분 값을 단순하게 구할 수 없는데,어떤 w가 다른 w에 대한 함수로 정의되어 있기 때문입니다.이러한 multi layer에서 gradient descent 하는 방법이 바로역전파 입니다.  (gradient descent 참고)2024.07.09 - [회귀분석] - 최소제곱법  아래 예시를보자.   가령, w1에 대한 update를 진행하고 싶다면.현재 ..

인공신경망 2024.10.27

MLP(multi-layer perceptron)

우선 단층 인공 뉴런에 대해서 먼저 살펴봅시다 간단한 선형 관계식을 생각해 봅시다. (일반적인 class 분류에 활용되는 분류 직선)   주어진 식에서 x는 입력 데이터를 뜻하며 w는 예측직선에 사용되는 회귀계수로  기계학습에서 추정해야 할 대상이었다.  이러한 관계식을 아래처럼 표현할 수 있음.  어렵지 않다 데이터 x에 w를 곱해 모두 더한다.이후 "활성화" 함수에 집어넣어 어떤 output을 출력하게 하는 것 . 활성화 함수의 종류들은 아래와 같다. 이러한 선형식을 "여러 개"를 써서 아래와 같이 multi class 분류기를 만들 수 있다.(참고)2024.09.05 - [다중 클래스 분류] - 다중 분류(multiclass-classification) 다중 분류(multiclass-classifi..

인공신경망 2024.10.15