본문 바로가기

Machine Learning/개념 정리17

딥러닝 학습 - parameter와 hyper-parameter 지금까지 실제 모델이 추론 - 학습을 하는데 필요한 전체적인 프로세스를 정리해보았다. 이제 실제 인공신경망 코드를 처음부터 끝까지 완성하기 전에 마지막으로 딥러닝 훈련(Training)에 필요한 옵션들에 대해서 얘기해보려고 한다. 파라미터와 하이퍼 파라미터 지금까지 우리는 인간이 학습하는 것처럼 기계에게 여러 Case들을 보여주고 스스로 기계가 인공신경망의 "가중치"를 배우는 과정을 딥러닝이라고 했다. 이 때 우리가 학습시키려는 대상을 parameter라고 부르곤 했다. 하지만 모델을 학습시키는데 있어서 추가적으로 파라미터가 필요한데 이는 기계가 학습시키는 것이 아니라 인간이 수동으로 설정해줘야하는 지표이다. 우리는 이걸 hyper-parameter라고 하고, 아래는 우리가 지정해줘야하는 하이퍼 파라미터.. 2023. 9. 18.
back-propagation 개념 서론 앞에서 우리는 실제 신경망을 통해서 값을 예측하는 연산인 forward pass를 수행했다. 당연히 랜덤하게 가중치를 설정해서 연산한 값으로 예측이 잘 맞을리 없고, 이제부터 실제 정답과 비교하면서 가중치를 조정해야한다. 상단 그림을 잠깐 설명해보면, 파란색 원은 모델이 예측한 값이고 보라색 네모는 실제 정답이다. 자세히 보면, 보라색의 3번째 값만 1이고 나머지는 다 0인데 즉 정답은 손글씨로 숫자 3으로 적혀져있다고 보면 된다. 하지만 동일한 위치의 파란색 원은 0.4로 1과 비교했을 때 매우 작은 것을 볼 수 있다. 우리가 원하는 건 결국 모델의 가중치 W를 수정해서 0.4 -> 1에 가까워지길 원하는 것이 딥러닝의 목표라고 볼 수 있다. 또한 나머지 파란색 원들의 값(0.1, 0.03, 0... 2023. 9. 15.
Forward Pass code의 수학적 이해와 code 구현하기 오늘은 이전까지 배워온 내용을 실제로 Forward pass 코드로 구현하는 작업을 해보려고 한다. 캐글이 바로 데이터를 가져오기 쉽고 별도의 설정 없이도 바로 웹에서 돌아가기 때문에 캐글 노트북 기준으로 코드를 작성했다. 사용법은 이 블로그(링크)에서 잘 설명이 되어 있어서 참고하시면 될 것 같다. 실습 데이터 설명 1. MNIST 데이터란? - MNIST 데이터는 사람의 손으로 직접 쓴 0~9까지의 글씨와 실제 해당 이미지가 무슨 숫자를 의미하는지를 라벨로 정의해놓은 데이터다. - 이미지라고 표현했지만, 실제로는 784픽셀로 이루어진 이미지 중에 검은색으로 칠해진 경우에 1, 흰색으로 칠해진 경우에는 0으로 표시한 벡터이다. - 실제 데이터를 예시로 표현해보면 이렇게 구성되어 있다.(train dat.. 2023. 9. 14.
Deep Neural Network의 구성요소와 Forward pass 0. 서론 실제 인간처럼 학습을 위해서는 단순히 1~2개 정도의 뉴런 단계를 만드는 것이 아니라, 수백 수천개를 쌓기 때문에 그 층이 깊다고 해서 Deep이라고 붙인다. 그래서 우리는 딥 뉴럴 네트워크라고 부르고 이렇게 깊은 신경망을 학습시키기 때문에 딥러닝이라고 부른다. 앞의 내용까지가 기존의 프로그래밍적 사고와 DNN이 어떻게 다른지에 대한 개념 설명이었다면, 이제는 실질적으로 DNN을 이루는 요소들과 실제로 어떻게 학습하는지에 대해서 설명해보려고 한다. 기본적인 프로세스는 "함수"를 생각하면 된다. 함수란? 쉽게 말하면 Input값이 들어가면 어떤 함수에 의해 변형된 output값이 노출되는 것을 말한다. 각 구성요소별로, 어떤 값이 입력으로 들어오고, 어떤 변형(변형의 목적)을 통해서 어떤 값이 .. 2023. 9. 13.