본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다

AI/Deep learning from Scratch16

[머신러닝, 딥러닝] 신경망 학습 (2) - 미니 배치 학습 미니 배치 학습은 경사 하강법에서 발생하는 성능 저하 문제를 해결하기 위해서 등장한 미니 배치 경사 하강법과 유사한 원리를 가지는 학습법입니다. 미니 배치 경사 하강법이 등장하기 이전에도 성능 저하 문제를 해결하기 위해서 여러 방법들이 존재했습니다. 대표적으로는 배치 경사 하강법과 확률적 경사 하강법입니다. 전자는 전체 데이터셋을 하나의 배치(batch)라고 두어 한꺼번에 처리를 하는 것을 의미합니다. 전체를 한꺼번에 처리하기 때문에 누락 없이 꽤 정확한 결과를 가져올 수 있겠지만 반면에 시간이 너무나 오래 걸린다는 단점이 있습니다. 후자는 전자의 시간 문제를 해결하기 위해 고안되었습니다. 그러나 시간이 걸리는 문제는 해결했지만 이번에는 정확도가 떨어지게 되었고, 이로 인해 등장한 것이 미니 배치 경사하.. 2023. 2. 12.
[머신러닝, 딥러닝] 신경망 학습 (1) - 손실함수 지난 장까지 신경망의 전체적인 개요에 대해 알아봤다면 이번에는 신경망의 학습에 대해 알아볼 차례입니다. 여기서 말하는 학습이란, 단순히 배우는 것이 아니라 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 말합니다. 신경망의 학습은 특정한 지표로부터 학습을 이어가는데 이 지표를 손실함수라고 합니다. 이 손실함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표입니다. 손실되는 값이 가장 적어야 우리가 원하는 정확도가 높은 값을 얻어낼 수 있기 때문이죠. 신경망의 특징은 데이터를 보고 학습할 수 있다는 점입니다. 데이터를 보고 학습한다는 것은 가중치의 매개변수 값을 데이터를 보고 자동으로 결정하여 처리한다는 뜻입니다. 만약에 MNIST 이미지 데이터셋과 관련된 알고리즘.. 2023. 1. 24.
[머신러닝, 딥러닝] 신경망 (4) - MNIST 손글씨 데이터 인식 MNIST 손글씨 숫자 인식 일반적으로 출력을 받을 때는 우리가 출력받기로 설정한 클래스의 개수만큼 출력층의 뉴런 수를 정합니다. 예를 들어 0부터 9까지의 수를 숫자에 맞게 분류하기로 한다면 출력층의 뉴런 수를 10개로 잡으면 됩니다. 이번 페이지에서 사용할 MNIST 데이터셋은 손글씨 숫자 이미지의 집합입니다. MNIST 손글씨 숫자 데이터는 위와 같은 형식으로 이루어져 있으며 누군가가 예쁘게 쓴 실제 손글씨입니다. 위의 숫자들이 뭔가 흐릿하게 보이는 이유는 픽셀로 이루어져 있기 때문입니다. 사진들의 크기는 각각 28 x 28로 작은 크기라서 더욱 선명하게 픽셀자국이 보입니다. 각 픽셀은 0에서 255까지의 값을 취합니다. 가장 먼저 해주는 작업은 이 픽셀 사진들을 넘파이 배열로 바꿔주는 것입니다. .. 2023. 1. 23.
[머신러닝, 딥러닝] 신경망 (3) - 항등함수와 소프트맥스 함수 이번에는 지난번의 말미에 언급했던 항등함수와 소프트맥스 함수에 대해서 다뤄보려고 합니다. 먼저 항등 함수입니다. 항등이란 예전부터 수학에서 자주 등장하는 단어이듯, 뜻은 같다, A = A라는 뜻입니다. 이것에 알고리즘을 씌워 생각해 보면 입력과 출력이 항상 같다는 뜻이 됩니다. 여태까지 신경망의 형태를 보면 하나의 입력이 수많은 은닉층에 영향을 미치고 또한 많은 값들이 출력에 영향을 주는 것을 확인할 수 있었습니다. 그러나 항등 함수는 그 구조 특성상 출력층에서 입력 신호가 그대로 출력 신호로 가는 모습을 볼 수 있기 때문에 이전의 신경망의 모습과는 상이한 모습을 볼 수 있습니다. 위와 같은 항등함수는 주로 회귀에서 사용된다고 하였습니다. 그러나 구조를 보면 아시다시피 입력과 출력이 그대로 가기 때문에 .. 2023. 1. 22.