딥러닝 모델: 파이토치(71)
-
Pytorch로 시작하는 딥러닝 입문(06-04. 역전파: Back Propagation )
인공신경망이 순전파 과정을 진행하여 예측값과 실제값의 오차를 계산했을 때 어떻게 역전파 과정에서 경사하강법을 사용하여 가중치를 업데이트하는지 직접 계산을 통해 이해해보자. ♣ 인공신경망의 이해(Neural Network Overview) 역전파 이해를 위해 입력층, 은닉층, 출력층 이렇게 3개 층을 가지는 인공신경망을 사용한다. 또한 두 개의 입력과 두 개의 은닉층 뉴런, 두 개의 출력층 뉴런을 사용한다. 은닉층과 출력층의 모든 뉴런은 시그모이드 함수를 활성화 함수로 사용한다. 은닉층과 출력층의 모든 뉴런에서 변수 z가 존재하는데, 이는 이전층의 모든 입력이 각각의 가중치와 곱해진 값들이 모두 더해진 가중합을 의미한다. 이 값은 뉴런에서 아직 시그모이드 함수를 거치지 않은 상태로, 활성화 함수의 입력을 ..
2024.03.10 -
Pytorch로 시작하는 딥러닝 입문(06-03. XOR 문제: 단층 퍼셉트론 구현하기 )
파이토치를 사용해서 단층 퍼셉트론을 구현하여 XOR 문제를 풀어보자 *XOR 문제(https://wikidocs.net/60680, 입력값 두 개가 서로 다른 값을 갖고 있을 때만 출력값이 1이 되고, 입력값 두 개가 서로 같은 같을 가지면 출력값이 0이 되는 게이트. 곡선을 이용하여 영역 분리를 할 수 있음) ♣ 파이토치로 단층 퍼셉트론 구현하기 도구 import하기(GPU 연산 설정) 입력과 출력 정의하기 1개의 뉴런을 가지는 단층 퍼셉트론 구현하기 앞에서 배운 활성화 함수인 시그모이드 함수를 사용해보자. 0 또는 1을 예측하는 이진 분류 문제이므로 비용함수로는 크로스엔트로피 함수를 사용한다. nn.BCELoss( )는 이진 분류에서 사용하는 크로스엔트로피 함수이다. 비용이 제대로 줄어들지 않는다는 ..
2024.03.10 -
Pytorch로 시작하는 딥러닝 입문(06-02. 인공신경망: 퍼셉트론)
인공신경망은 수많은 머신 러닝 방법 중 하나이지만, 인공신경망을 복잡하게 쌓아올린 딥 러닝이 다른 머신 러닝 방법들을 뛰어넘는 성능을 보여주는 사례가 늘면서 전통적인 머신 러닝과 딥러닝을 구분하기도 한다. 딥러닝을 이해하기 위해서는 인공신경망에 대한 이해가 필요하다. ♣ 퍼셉트론(perceptron)퍼셉트론은 초기의 인공신경망으로, 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다. 위의 그림에서 x는 입력값을 의미하며, W는 가중치(weight), y는 출력값이다. 원은 인공 뉴런에 해당된다. 실제 신경세포 뉴런에서 신호를 전달하는 축삭돌기의 역할을 하는 것이 가중치이다. 각각의 입력값 x는 각각의 가중치 W와 함께 종착지인 인공뉴런에 전달되고 있다. 각각의 입력값에는 각각의 가중치가 존재하는데..
2024.03.08 -
Pytorch로 시작하는 딥러닝 입문(06-01. 인공신경망: 머신 러닝 용어 이해하기)
링크 참조 https://wikidocs.net/60021 06-01 머신 러닝 용어 이해하기 이번 챕터에서는 머신 러닝의 특징들에 대해서 배웁니다. 딥 러닝 또한 머신 러닝에 속하므로, 아래의 머신 러닝의 특징들은 모두 딥 러닝의 특징이기도 합니다. ## 1. 머신… wikidocs.net
2024.03.06 -
Pytorch로 시작하는 딥러닝 입문(05-04. 소프트맥스 회귀로 MNIST 데이터 분류하기)
이번에는 MNIST 데이터에 대해서 이해하고 파이토치로 소프트맥스 회귀를 구현하여 MNIST 데이터를 분류해보자♣ MNIST 데이터 이해하기MNIST는 숫자 0부터 9까지의 이미지로 구성된 손글씨 데이터셋이다. 총 60,000개의 훈련 데이터와 레이블, 총 10,000개의 테스트 데이터와 레이블로 구성되어 있다. 레이블은 0부터 9까지 총 10개이다. MNIST 문제는 손글씨로 적힌 숫자 이미지가 들어오면 그 이미지가 무슨 숫자인지 맞추는 문제이다. 각각의 이미지는 아래와 같이 28 픽셀 × 28 픽셀의 이미지이다. 이 이미지는 28 * 28 = 784 픽셀이므로, 각 이미지를 총 784개의 원소를 가진 벡터로 만든다. 즉 총 784개의 특성을 가진 샘플이 되는데, 이는 앞서 풀었던 문제들보다 특성이..
2024.03.06 -
Pytorch로 시작하는 딥러닝 입문(05-03. 소프트맥스 회귀 구현하기)
소프트맥스 회귀를 F.cross_entropy를 사용해서 구현해보자. ♣ 훈련 데이터와 레이블을 텐서로 선언하기 x_train 의 각 샘플은 4가지 특성을 가지고 있으며 총 8개의 샘플이 존재한다. y_train은 각 샘플에 대한 레이블인데, 0, 1, 2 의 값을 가지는 것으로 보아 총 3개의 클래스가 존재한다. ♣ 소프트맥스 회귀 구현하기(로우 레벨) x_train 의 크기는 8×4 이며 y_train의 크기는 8 × 1 이다. 최종 사용할 레이블은 y_train에서 원-핫 인코딩을 한 결과값이어야 한다. 클래스의 수가 3개이므로 y_train에 원-핫 인코딩한 결과는 8 × 3 의 개수를 가져야 한다. y_train에 원-핫 인코딩을 한 결과인 y_one_hot의 크기는 8 × 3 이다. 즉 W 행..
2024.03.03