목록2025/02/02 (2)
wintertreey 님의 블로그
학습단계는 feedforward 순전파,back propagation 역전파,epoch를 이용해 반복학습을 통해 경사기울기를 줄여 가까워지는것이다. feedforwarddouble sigmoid(double z) { return 1.0 / (1.0 + exp(-z));}vector feedforward(const vector& input, vector& hiddenLayer) { hiddenLayer.resize(w1[0].size()); vector outputLayer(w2[0].size()); for (int j = 0; j 활성화함수로 시그모이드 함수를 사용하였다. feedforward 안에 정의하여 사용할까 하다가, 역전파때 미분하여 쓸것이기에 밖에 선언해주었다. 은닉층 노드값들을 저장할 hi..
앞선 포스팅에선 데이터 전처리과정을 공부했다.그러면 이번엔 초기화 부분을 알아보자. initialization이번에 구현할 신경망의 경우, 은닉층을 1개로 할 예정.입력층의 뉴런수(inputSize), 출력층의 뉴런수(outputSize)의 경우 이미 데이터로 정해져있다.내가 정해야 할것은 은닉층의 뉴런수(hiddenSize)이고(이건 메인함수에서 설정해줄 예정)초기화해야할 것은 가중치w 와 바이어스b이다. void initializeWeights(int inputSize, int hiddenSize, int outputSize) { w1.resize(inputSize, vector(hiddenSize)); w2.resize(hiddenSize, vector(outputSize)); b1.resize..