경사하강법과 딥러닝

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
>

상세정보

소개글

"경사하강법과 딥러닝"에 대한 내용입니다.

목차

1. 딥러닝 모델링 성능 향상 기법
1.1. 연속형 모델 손실함수
1.1.1. 손실함수
1.1.2. Pytorch 함수
1.1.3. 사례
1.2. 이산형 모델 손실함수
1.2.1. 손실함수
1.2.2. Pytorch 함수
1.2.3. 사례
1.3. 활성화 함수
1.3.1. S모양의 로지스틱 함수
1.3.2. 기울기 소실 문제
1.3.3. ReLU 함수
1.3.4. Leaky ReLU 함수
1.4. 옵티마이저
1.4.1. 확률적 경사 하강법의 문제점
1.4.2. Adam
1.4.3. Pytorch 방법
1.5. 정규화
1.5.1. 문제점
1.5.2. 대응방안
1.5.3. Pytorch 방법

2. 다층신경망의 학습과정
2.1. 퍼셉트론과 다층신경망의 차이
2.2. 신경망의 학습
2.3. 손실함수와 경사하강법
2.4. 훈련, 검증, 시험 데이터의 구분
2.5. 에포크와 최적값 판단

3. Teachable Machine을 이용한 머신러닝 모형 만들기
3.1. 학습 데이터 업로드 및 모델 학습
3.2. 학습 결과 정리

4. Tensorflow Playground를 이용한 분류 과제
4.1. 하이퍼파라미터 조정을 통한 최적 모델 찾기
4.2. 모델 특성 정리

5. MNIST 데이터를 이용한 완전연결신경망 구현
5.1. 신경망 구조 수정
5.2. 학습 결과 분석

6. 참고 문헌

본문내용

1. 딥러닝 모델링 성능 향상 기법
1.1. 연속형 모델 손실함수
1.1.1. 손실함수

손실함수는 신경망 모델의 예측값과 실제값 간의 오차를 정량화하는 척도이다. 이는 신경망 모델의 성능을 평가하고 학습을 진행하는 데 필수적인 요소이다. 적절한 손실함수를 선택하는 것은 모델 성능 향상을 위해 매우 중요하다.

연속형 모델의 경우, 평균 제곱 오차(Mean Squared Error, MSE)가 가장 일반적으로 사용되는 손실함수이다. MSE는 예측값과 실제값의 차이를 제곱하여 평균한 값으로, 모델의 예측 정확도를 최대화하도록 학습을 진행하는 데 활용된다. MSE는 오차에 대한 민감도가 크기 때문에 모델이 정확한 예측값을 생성하도록 유도한다.

이산형 모델의 경우, 이진 교차 엔트로피(Binary Cross Entropy, BCE) 손실함수가 널리 사용된다. BCE는 실제 레이블과 모델의 예측 확률 간의 차이를 최소화하는 방향으로 학습을 진행한다. 이를 통해 모델이 정확한 이진 분류 결과를 생성하도록 유도한다.

손실함수 선택 시 모델의 특성과 목적에 맞는 적절한 손실함수를 선택하는 것이 중요하다. 연속형 모델의 경우 MSE, 이산형 모델의 경우 BCE가 대표적으로 사용되지만, 문제 상황에 따라 다양한 손실함수가 적용될 수 있다. 이러한 손실함수는 모델의 성능에 직접적인 영향을 미치므로, 손실함수 선택 및 적용은 모델 설계 및 학습 과정에서 매우 중요한 부분이라 할 수 있다.


1.1.2. Pytorch 함수

Pytorch 함수는 다음과 같다.""

연속형 모델에서 손실함수로 평균 제곱 오차법(MSE)를 사용할 수 있으며, Pytorch에서는 nn.MSELoss() 함수를 이용하여 구현할 수 있다."" 이 함수는 예측값과 실제값의 차이의 제곱을 평균하여 손실함수를 계산한다. 즉, 손실함수의 식은 (예측값 - 실제값)^2의 평균이 된다.""이산형 모델에서는 이진 교차 엔트로피(Binary Cross Entropy) 손실함수를 사용할 수 있으며, Pytorch에서는 nn.BCELoss() 함수로 구현할 수 있다."" 이 함수는 예측값과 실제값이 0 또는 1인 이진 분류 문제에서 사용된다. 손실함수의 식은 -(실제값*log(예측값) + (1-실제값)*log(1-예측값))의 평균이 된다.""


1.1.3. 사례

연속형 모델 손실함수의 사례로, 어떤 신경망들은 연속적인 숫자에 대해 결과를 출력하도록 구성되어 있는 경우가 있다. 예를 들어 섭씨온도 같은 숫자를 맞혀야 하는 모델을 만든다면 0부터 100까지 수샂가 연속적으로 나오도록 구성해야 한다. 이러한 연속형 모델의 경우 그에 적합한 손실함수로 평균 제곱 오차법(Mean Squared Error)을 사용하는 것이 적절하다.


1.2. 이산형 모델 손실함수
1.2.1. 손실함수

이산형 모델 손실함수의 손실함수는 이진 교차 엔트로피(Binary Cross Entropy) 손실이다.""

이진 교차 엔트로피 손실은 이산형 분류 모델에서 자주 사용되는 손실함수이다. 이 손실함수는 실제 출력 값과 예측 출력 값의 차이를 계산하여 최소화하는 것을 목표로 한다.

특히 이진 분류 문제에서 많이 사용되는데, 실제 클래스와 예측된 클래스의 차이를 엔트로피 개념을 통해 계산한다. 이진 분류 문제에서는 클래스가 0 또는 1 두 가지만 존재하므로, 실제 클래스와 예측 클래스의 차이를 로그 함수를 통해 계산한다.

수식으로 표현하면 다음과 같다:

J(θ) = -[y*log(ŷ) + (1-y)*log(1-ŷ)]

여기서 y는 실제 클래스 값이고, ŷ는 모델이 예측한 클래스 값이다. 이 손실함수를 최소화하도록 모델의 매개변수 θ를 업데이트하여 학습을 진행한다.

이진 교차 엔트로피 손실함수는 모델이 0 또는 1의 이진 클래스를 예측하도록 학습시키는데 효과적이며, 이산형 모델의 성능 향상에 기여한다.


1.2.2. Pytorch 함수

'Pytorch 함수'는 이산형 모델의 손실함수를 구현할 때 활용되는 함수이다. 이산형 모델은 대상을 이산적으로 구분할 수 있는 모델로, 예를 들어 고양이 사진과 강아지 사진을 구분하는 이진 분류 모델이 이에 해당한다.

이러한 이산형 모델에서는 이진 교차 엔트로피(Binary Cross Entropy) 손실함수가 적합하다. Pytorch에서는 nn.BCELoss() 함수를 제공하여 이진 교차 엔트로피 손실을 손쉽게 구현할 수 있다.

nn.BCELoss() 함수의 입력은 모델의 출력값과 실제 정답값이다. 출력값은 모델이 예측한 확률값(0~1 사이의 값)이며, 실제 정답은 0 또는 1의 값을 가진다. 이 두 값의 차이를 최소화하는 방향으로 모델의 가중치를 업데이트하여 분류 성능을 높이게 된다.

예를 들어 고양이 사진에 대해 모델이 0.8의 확률로 고양이라고 예측했고, 실제 정답이 고양이(1)라면 nn.BCELoss()를 통해 계산된 손실값은 -log(0.8)=0.223이 된다. 이 손실값을 역전파하여 가중치를 업데이트하면 모델의 성능이 점차 개선된다.

요약하면, Pytorch의 nn.BCELoss() 함수는 이산형 모델의 손실함수 계산을 위해 사용되는 핵심 함수로, 모델 학습 과정에서 필수적으로 활용된다고 할 수 있다.


1.2.3. 사례

이산형 모델 손실함수의 사례로는 고양이 사진과 개 사진을 분류하는 모델을 들 수 있다. 이러한 모델에서는 이미지가 고양이인지 개인지를 판단하여 결과값으로 1.0 또는 0.0에 가깝게 출력해야 한다. 따라서 적합한 손실함수는 이진 교차 엔트로피(Binary Cross Entropy) 손실이다.

예를 들어, 고양이 사진 10장과 개 사진 10장을 Teachable Machine에 업로드하여 모델을 학습시킨다고 가정하자. 이 때 일부 사진에 대해 고양이를 개로, 개를 고양이로 잘못 판단하는 경우가 발견된다. 이를 개선하기 위해 남녀 사진을 각 3장씩 추가했지만 큰 차이가 없었다. 다만 에포크를 증가시키거나 배치 크기를 늘리면 오류가 일부 개선되었다. 그러나 여전히 남자를 여자로, 여자를 남자로 잘못 판단하는 경우가 있었다. 따라서 이러한 문제를 해결하기 위해서는 보다 많은 사진 데이터를 모델에 추가로 학습시켜야 할 것이다.


1.3. 활성화 함수
1.3.1. S모양의 로지스틱 함수

S모양의 로지스틱 함수는 신경망의 초기에 많이 사용되었던 활성화 함수이다. 이 함수는 동물의 뉴런에서 일어나는 신호 전달 현상과 유사한 특성을 가지고 있다. 또한 수학적으로 기울기를 계산하기가 상당히 간편하다는 장점이 있다.

로지스틱 함수는 입력값이 0을 기준으로 정의되며, 출력값의 범위가 0에서 1 사이의 값을 가진다. 이러한 특성으로 인해 로지스틱 함수는 입력값이 어느 정도 크거나 작아져도 출력값이 크게 변하지 않는다. 이는 신경망의 출력값이 확률값으로 해석될 수 있게 하는데 기여한다.

그러나 전통적인 시그모이드(Sigmoid) 활성화 함수는 큰 입력값에 대해 기울기 소실 문제가 발생할 수 있다. 이는 신경망 훈련 시 역전파 신호가 약해져 문제가 될 수 있다. 이러한 한계로 인해 최근에는 ReLU 함수와 같은 다른 활성화 함...


참고 자료

타리크라사드(2021), GAN첫걸음, 한빛미디어
김용대, 김기온(2020), 딥러닝의 통계적이해, 방송통신대학교출판문화원.
이영호(2020), 2020 모두의 인공지능 with 파이썬, 길벗.
천인국(2020), 인공지능 : 파이썬으로 배우는 머신러닝과 딥러닝, 인피니티북스.
<신경망 첫걸음>(티라크 라시드)
강민제. (2020). 딥러닝을 위한 경사하강법 비교. 한국산학기술학회 논문지, 21(2), 189-194.
안성만. (2016). 딥러닝의 모형과 응용사례. 지능정보연구, 22(2), 127-142.

주의사항

저작권 EasyAI로 생성된 자료입니다.
EasyAI 자료는 참고 자료로 활용하시고, 추가 검증을 권장 드립니다. 결과물 사용에 대한 책임은 사용자에게 있습니다.
AI자료의 경우 별도의 저작권이 없으므로 구매하신 회원님에게도 저작권이 없습니다.
다른 해피캠퍼스 판매 자료와 마찬가지로 개인적 용도로만 이용해 주셔야 하며, 수정 후 재판매 하시는 등의 상업적인 용도로는 활용 불가합니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우