본문 바로가기

딥러닝22

26. [CNN기초] CNN 개요 오랜만입니다. 2022년은 많이 바빠서 개인 연구 포스팅을 거의 못했네요. 2021년에는 선형 회귀, 분류, 기초적인 완전연결 인공신경망 Neural Net, 경사하강법, 데이터 전처리를 포스팅 하였고, 2022년에는 CNN을 천천히 하자 다짐했건만... 솔직히, CNN을 라이브러리없이 구현하는 것이 상당히 어려운 작업이었습니다. 올해는 또 둘째까지 돌보았기 때문에 애기들 자는 밤 10시에 같이 자는 경우가 많았죠...(ㅜㅜ) 결국 공부하고 완성하는데 1년이란 시간이 필요했습니다. 각설하고 CNN이 무엇인지, 1차원 CNN, 2차원 CNN(image to column), pooling을 구현하고 마지막으로 라이브러리 없이 도형(세모,네모,원)을 구별해 보는 내용을 연재합니다. 1. 합성곱(CNN)을 사용.. 2023. 1. 1.
25 - Deep Neural Nets 구현하기 저번 시간까지 다층 퍼셉트론(Multi-Layer Perceptron, MLP)을 이용하여 학습을 시켜보았다. 정의에 대해 조금 더 이야기를 해 보자면 일반적으로 MLP는 고전적인, 완전 연결 신경망으로 볼 수 있는데 '일반적으로' 3개의 층에 sigmoid, tanh의 활성화 함수를 가진 신경망을 이야기한다. (본인의 예제에서 활성화 함수를 relu를 사용하였지만...) 여기서 DNN은 더 확장하여 순환(RNN, LSTM)을 할 수 있다던지, 완전 연결이 아니라던지, 활성화 함수가 0 또는 1이 아니라던지 등등 더욱 포괄적이고 상위적인 개념이 포함된다. 단순히 은닉 층 개수로 나눌 수는 없다. 제목은 DNN으로 거창하게 하였지만, 사실 MLP는 DNN의 하위개념이므로(...) 구현 상 큰 차이가 없다... 2022. 4. 20.
18. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(실습) 저번시간에 키와 몸무게의 관계를 예측하는 모델을 만들기 위해 다층 퍼셉트론과 ReLU 활성화함수를 이용하고 순방향과 역전파를 수학적으로 표현해 보았다. 이번 시간에는 수학적 표현을 Numpy 코드로 표현해 보고 Pytorch 결과와 비교해보도록 하겠다. 1. 데이터 정의 저번시간에 정의한 데이터, 가중치 및 편향 설정이다. 1) 입력 : input (batch_size, 1) 2) 목표값 : target (batch_size, 1) 3) 가중치 및 편향 (1) G1 가중치 : W1 (8, 1) , G1 편향 : B1 (8, 1) (2) G2 가중치 : W2 (4, 8) , G1 편향 : B2 (4, 1) (3) G3 가중치 : W3 (1, 4) , G1 편향 : B3 (1, 1) 코드로 표현하면 아래와 .. 2022. 1. 21.
17. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(심화이론) 저번시간에 단순 선형회귀식의 한계를 확인하고 대책으로 비선형 회귀식을 제시하였다. 이를 위해 다층 퍼셉트론의 이용과 비선형함수로 시그모이드 대신 ReLU 함수를 사용할 것을 확인하였다. 순방향 전파는 아래와 같다. G는 선형연산(WX + B) 이고 R은 ReLU 함수이다. 이번 시간에는 순방향 전파, 역전파를 이용한 도함수를 구할 것이다. 1. 데이터 정의 데이터는 아래와 같이 키, 몸무게를 이용할 것이다. '12. 단층 퍼셉트론의 한계-2.선형 회귀식의 한계' 에서 아래와 같은 데이터에서는 선형 회귀식으로 모델을 만들기 어렵다고 결론을 내렸었다. 그야말로 총체적 난국이다 (...) 입력, 목표값, 가중치, 편향은 아래와 같다. shape을 유심히 보길 바란다. 1) 입력 : input (batch_si.. 2022. 1. 21.