본문 바로가기
파이썬 프로그래밍/Numpy 딥러닝

[목차] Numpy 딥러닝 시리즈

by Majestyblue 2023. 9. 24.

Numpy 만으로 인공신경망을 구축하고 훈련하는 Numpy 딥러닝 시리즈의 목차를 정리한 것입니다.

 

1. 단순 퍼셉트론

1. 선형회귀 구현하기(이론) (tistory.com)

 

1. 선형회귀 구현하기(이론)

(시작하기 앞서 기본적인 수학 이론을 공부해야 한다. 아래 링크를 정주행하는 것을 추천한다. https://toyourlight.tistory.com/category/%ED%8C%8C%EC%9D%B4%EC%8D%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EB%94%A5%EB%

toyourlight.tistory.com

 

2. 선형회귀 구현하기(실습) (tistory.com)

 

2. 선형회귀 구현하기(실습)

저번시간에 X = [1, 2, 3], Y = [3, 5, 7] 의 입력(X)와 출력(Y)가 있을 때 이 둘의 관계를 Y = wx + b로 가정하고 w, b를 구하기 위해 도함수를 구하고 경사하강법을 이용한다고 하였다. 입력값 input X, 목표값

toyourlight.tistory.com

 

3. 입력 특성이 2개인 선형회귀 구현(이론, 실습) (tistory.com)

 

3. 입력 특성이 2개인 선형회귀 구현(이론, 실습)

저번 시간에는 입력 특성이 1개인 단순 선형 회귀를 구현하였다. 이번에는 입력 특성이 2개 혹은 그 이상에도 적용 가능한 선형회귀 구현을 하고자 한다. 사실 매우 쉽다. 조금만 변형해주면 된

toyourlight.tistory.com

 

4. 로지스틱 회귀 구현하기(이론) (tistory.com)

 

4. 로지스틱 회귀 구현하기(이론)

로지스틱 회귀(logistic regression)은 선형결합으로 이루어진 모델(Y = WX + B)을 이용하여 어떤 사건을 분류하거나 예측하는데 사용한다. 단순 이진 분류인 경우 1, 0으로 분류되는데 선형회귀를 사용

toyourlight.tistory.com

 

5. 로지스틱 회귀 구현하기(실습) (tistory.com)

 

5. 로지스틱 회귀 구현하기(실습)

이전 시간에 로지스틱 회귀의 정의, 도함수를 유도하였다. 1. 복습 위 데이터는 평균 득점(avg_score), 리바운드 횟수(rebound), 어시스트 횟수(asist)에 따른 신인 농구 선수의 NBA 드래프트 여부 (1:성공,

toyourlight.tistory.com

 

6. 소프트맥스(softmax) 함수 탐구 (tistory.com)

 

6. 소프트맥스(softmax) 함수 탐구

소프트맥스(softmax)함수는 딥러닝에서 다중 분류에 쓰이는데 오늘은 그 유래, 정의, 장점과 단점을 다루고자 한다. 1. 유래 학부과정 물리학을 공부하다 보면 열 및 통계물리(줄여서 통계물리)를

toyourlight.tistory.com

 

7. 다중 분류 구현하기(이론) (tistory.com)

 

7. 다중 분류 구현하기(이론)

이번 시간에는 소프트맥스 함수로 출력되는 다중 분류 구현하기를 이론적으로 살펴보겠다. 대표적인 문제로 아이리스(Iris) 꽃 분류 문제가 있다. 아래 자료를 살펴보자. 1. 데이터 살펴보기 1) 데

toyourlight.tistory.com

 

8. 다중 분류 구현하기(기초실습) (tistory.com)

 

8. 다중 분류 구현하기(기초실습)

이전시간에 소프트맥스, 크로스엔트로피를 이용하여 아이리스 꽃 분류 문제를 어떻게 해결할 수 있는지 이론적으로 알아보았다. 이번엔 단 한개의 데이터를 이용하여 이론을 넘파이 코드로 작

toyourlight.tistory.com

 

9. 다중 분류 구현하기(심화실습) (tistory.com)

 

9. 다중 분류 구현하기(심화실습)

이전시간에 언급한 대로, Iris 꽃 데이터 중 일부(30개)를 불러와 학습해 볼 것이다. 아래 파일을 임포트한다. 사용하기 쉽게 미리 원-핫 인코딩을 하였다. 1. 데이터 준비 파일을 임포트하고 슬라

toyourlight.tistory.com

 

10. 단층 퍼셉트론 (tistory.com)

 

10. 단층 퍼셉트론

지금까지 했던 모델들은 모두 단층 퍼셉트론(또는 싱글 퍼셉트론) 연산이다. Numpy 딥러닝 시리즈를 보면 모두 단층 퍼셉트론으로 어설픈(?) 딥러닝을 구현한 것을 알 수 있을 것이다. 구체적으로

toyourlight.tistory.com

 

11. 단층 퍼셉트론의 한계-1.XOR 문제 (tistory.com)

 

11. 단층 퍼셉트론의 한계-1.XOR 문제

1969년 우리가 지금까지 사용한 단층 퍼셉트론은 XOR 문제를 해결할 수 없다고 증명되었다. 인공지능 연구 진척이 더뎌지기 시작했는데 도대체 무슨 일이 있었던 걸까 1. 논리게이트 (Logic gate) 논

toyourlight.tistory.com

 

12. 단층 퍼셉트론의 한계-2.선형 회귀식의 한계 (tistory.com)

 

12. 단층 퍼셉트론의 한계-2.선형 회귀식의 한계

저번 차시에서 단층 퍼셉트론으로는 XOR 문제를 해결할 수 없다는 것을 알았다. 이번엔 실제로 와 닫는 문제를 가져왔다. 이번 목표는 단층 퍼셉트론으로 몸무게에 따른 키를 예측하는 모델을 만

toyourlight.tistory.com

 

22. 다중회귀-소프트맥스 함수 역전파(고급, 쉬운 방법) (tistory.com)

 

22. 다중회귀-소프트맥스 함수 역전파(고급, 쉬운 방법)

이번 시간엔 소프트맥스 함수 역전파를 고급지게(?) 다뤄볼 것이다. 왜냐하면 기존에 다룬 방법(8.다중분류 구현하기(기초실습), 9.다중분류 구현하기(심화실습) ) 은 너무 비효율적이기 때문이다

toyourlight.tistory.com

 

 

 

2. 다층 퍼셉트론(MLP), DNN

13. 다층 퍼셉트론(MPL) 등장 - 1.XOR 문제 해결(기초이론) (tistory.com)

 

13. 다층 퍼셉트론(MPL) 등장 - 1.XOR 문제 해결(기초이론)

1986년 다층 퍼셉트론(Multi-Layer Perceptrons, MLP)의 등장으로 XOR문제를 해결할 수 있게 되었다. 선형 분류 판별기를 추가함으로써 XOR 문제를 해결할 수 있게 된 것이다. XOR 문제를 어떻게 해결할 수 있

toyourlight.tistory.com

 

14. 다층 퍼셉트론(MLP) 등장 - 1.XOR 문제 해결(심화이론) (tistory.com)

 

14. 다층 퍼셉트론(MLP) 등장 - 1.XOR 문제 해결(심화이론)

이번 시간에는 XOR 문제 해결을 위한 다층 퍼셉트론의 순방향 전파, 역전파를 이용한 도함수를 구할 것이다. 저번 시간에 순방향 전파를 아래와 같이 정의하였다. 입력데이터를 정의하고 순서대

toyourlight.tistory.com

 

15. 다층 퍼셉트론(MLP) 등장 - 1.XOR 문제 해결(실습) (tistory.com)

 

15. 다층 퍼셉트론(MLP) 등장 - 1.XOR 문제 해결(실습)

이전시간에 XOR 문제를 해결하기 위해 다층 퍼셉트론이 제시되었고 이를 순방향 전파와 역방향 전파 도함수를 수학적으로 구한 것을 확인하였다. 이번 시간에는 수학적으로 표현한 내용을 코드

toyourlight.tistory.com

 

16. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(기초이론) (tistory.com)

 

16. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(기초이론)

이전 시간에 XOR 문제를 다층 퍼셉트론을 이용하여 해결하였다. 이번에는 ' 12. 단층 퍼셉트론의 한계-2.선형 회귀식의 한계' 에서 해결하지 못한 회귀식을 비선형 회귀식으로 어떻게 해결할 수 있

toyourlight.tistory.com

 

17. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(심화이론) (tistory.com)

 

17. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(심화이론)

저번시간에 단순 선형회귀식의 한계를 확인하고 대책으로 비선형 회귀식을 제시하였다. 이를 위해 다층 퍼셉트론의 이용과 비선형함수로 시그모이드 대신 ReLU 함수를 사용할 것을 확인하였다.

toyourlight.tistory.com

 

18. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(실습) (tistory.com)

 

18. 다층 퍼셉트론(MPL)의 등장-2.비선형 회귀식(실습)

저번시간에 키와 몸무게의 관계를 예측하는 모델을 만들기 위해 다층 퍼셉트론과 ReLU 활성화함수를 이용하고 순방향과 역전파를 수학적으로 표현해 보았다. 이번 시간에는 수학적 표현을 Numpy

toyourlight.tistory.com

 

25 - Deep Neural Nets 구현하기 (tistory.com)

 

25 - Deep Neural Nets 구현하기

저번 시간까지 다층 퍼셉트론(Multi-Layer Perceptron, MLP)을 이용하여 학습을 시켜보았다. 정의에 대해 조금 더 이야기를 해 보자면 일반적으로 MLP는 고전적인, 완전 연결 신경망으로 볼 수 있는데 '일

toyourlight.tistory.com

 

 

3. 경사하강법

19. 경사하강법과 단순 경사하강법의 문제점 (tistory.com)

 

19. 경사하강법과 단순 경사하강법의 문제점

경사하강법(Gradient descent)은 오차함수의 기울기를 구하고 기울기의 절대값이 낮은 쪽으로 계속 이동시켜 오차를 최소화하는 방법이다. 지금까지 사용한 경사하강법 방법은 아래와 같이 오차함

toyourlight.tistory.com

 

20. 경사하강법의 개선 - Momentum, RMSprop (tistory.com)

 

20. 경사하강법의 개선 - Momentum, RMSprop

지난 시간에 단순 경사하강법은 수렴 가능성이 생각보다 낮다는 것을 보여주었다. 이번 시간은 경사하강법을 개선하여 빠르게 수렴하면서 지역 최소점에 수렴하지 않도록 할 수 있는지 보여줄

toyourlight.tistory.com

 

21. 경사하강법의 개선 - Adam (tistory.com)

 

21. 경사하강법의 개선 - Adam

저번 시간에 단순경사하강법을 개선한 Momentum과 RMSprop를 알아보았다. Momentum은 기울기를 변화시키는 방법으로 지역 최소점에 빠지지 않게 도와주었고 RMSprop는 학습률을 변화시키는 방법으로 진

toyourlight.tistory.com

 

 

 

 

4. 데이터 전처리

23 - 학습 성능 개선 : Mini batch & Shuffle 구현하기 (tistory.com)

 

23 - 학습 성능 개선 : Mini batch & Shuffle 구현하기

지난 시간까지 복잡한 데이터에 대한 학습은 다중 퍼셉트론(MLP)가 효율적이라는 것을 배웠고 좀 더 빠르게 수렴하기 위해 경사하강법을 Momentum, RMSprop, Adam 으로 개선하여 학습해 보았다. 이번 시

toyourlight.tistory.com

 

 

24. 딥러닝에서 데이터 표준화, 정규화가 필요한 이유 (tistory.com)

 

24. 딥러닝에서 데이터 표준화, 정규화가 필요한 이유

딥러닝 실행 전에 데이터 표준화(Normalization)와 정규화(Standardization)가 왜 필요할까? Kaggle 콘크리트 강도 계산(Calculate Concrete Strength) 데이터를 예시로 들어보자. 콘크리트 강도 계산 feature는 8개로

toyourlight.tistory.com

 

 

 

 

5. 합성곱 신경망(Convolution Neural Networks, CNN)

26. [CNN기초] CNN 개요 (tistory.com)

 

26. [CNN기초] CNN 개요

오랜만입니다. 2022년은 많이 바빠서 개인 연구 포스팅을 거의 못했네요. 2021년에는 선형 회귀, 분류, 기초적인 완전연결 인공신경망 Neural Net, 경사하강법, 데이터 전처리를 포스팅 하였고, 2022년

toyourlight.tistory.com

 

27. [CNN기초] 1차원 배열 CNN 훈련하기-1 (tistory.com)

 

27. [CNN기초] 1차원 배열 CNN 훈련하기-1

일반적으로 CNN은 이미지, 영상등에서 많이 쓰이지만 이번 예제에서 어떤 원리로 훈련하는지 알기 위해 가장 간단한 1차원 배열로 표현해 보자. 문제 입력 [1., 0.7, 0.5, 0.3, 0.1]인 X = (5, ) 배열을 [1,

toyourlight.tistory.com

 

28. [CNN기초] 1차원 배열 CNN 훈련하기-2(배치구현) (tistory.com)

 

28. [CNN기초] 1차원 배열 CNN 훈련하기-2(배치구현)

27번 예제에서 1개의 입력에 대해 1개의 필터로 훈련하였다면 3개의 입력에 대해서 1개의 필터로 훈련한다면 어떨까? 추가로 hyper parameter를 엄밀하게 정의해 보겠다. 1. 변수 정의하기 먼저 입력과

toyourlight.tistory.com

 

29. [CNN기초] 1차원 배열 CNN 훈련하기-3(패딩,선형연산) (tistory.com)

 

29. [CNN기초] 1차원 배열 CNN 훈련하기-3(패딩,선형연산)

이전 28번 구현에서 3개의 배치가 있는 경우 훈련 결과가 상당히 좋지 않았다. 노란색 부분이 1, 그 외에는 0이 되어야 하는데 완벽하지가 않다. 무엇이 문제이고 어떻게 해결할 수 있을까? 여러

toyourlight.tistory.com

 

30. [CNN기초] 2차원 배열 합성곱 - image to column 구현 (tistory.com)

 

30. [CNN기초] 2차원 배열 합성곱 - image to column 구현

1. 기존 합성곱 방식의 문제점 이전시간에 1차원 배열에 대한 합성곱 연산을 실시하였다. 이번 시간부터 2차원 배열(이미지)에 대해 실시해 보도록 하겠다. 원리는 간단한데, 1차원을 2차원으로

toyourlight.tistory.com

 

31. [CNN기초] 2차원 배열 합성곱 - image to column-2 (tistory.com)

 

31. [CNN기초] 2차원 배열 합성곱 - image to column-2

이전 시간에는 image to coumn을 이용하여 합성곱 연산을 진행하였다. 하지만 아직도 갈 길이 많다. 이전 예제는 원리를 설명하느냐 정말 간단하게만 구현하였기 때문에 제대로 하려면 스트라이드

toyourlight.tistory.com

 

32. [CNN기초] 이미지의 합성곱 훈련 -쉬운예제(이론)- (tistory.com)

 

32. [CNN기초] 이미지의 합성곱 훈련 -쉬운예제(이론)-

저번시간엔 image to column 이란 무엇인지, im2col 을 이용해 어떻게 이미지를 합성곱 할 수 있는지, 역전파는 어떻게 하는지 알아보았다. 이번 시간에는 정말 쉬운 예제로 간단한 이미지를 합성곱을

toyourlight.tistory.com

 

33. [CNN기초] 이미지의 합성곱 훈련 -쉬운예제(실습)- (tistory.com)

 

33. [CNN기초] 이미지의 합성곱 훈련 -쉬운예제(실습)-

저번시간에 아래와 같이 3 × 3 이미지를 2 × 2 값으로 어떻게 훈련할 수 있는지 이야기하였다. 오늘은 이 내용을 코드로 작성해 보고자 한다. 예상하건데 필터는 1개이고, 선형분류기가 따로 없으

toyourlight.tistory.com

 

34. [CNN기초] Max pooling, Average pooling 구현 (tistory.com)

 

34. [CNN기초] Max pooling, Average pooling 구현

Pooling을 정말 간단하게 이야기하자면 이미지의 있는 특징들을 요약하는 작업이다. 사용하는 이유는 일반적으로 특성 맵의 차원을 줄임으로써 연산량을 줄여줄 수 있을 뿐만 아니라 특징을 요약

toyourlight.tistory.com

 

35. [CNN기초] 원, 네모를 구별하는 CNN 만들기(이론) (tistory.com)

 

35. [CNN기초] 원, 네모를 구별하는 CNN 만들기(이론)

1. 문제제기 아래 예시와 같이 원과 네모를 구별하는 문제가 있다. 3살짜리 아이도 맞출 만큼 굉장히 쉬운 문제다. 실전을 들어가 보자. 3 × 3 크기의 합성곱 필터 1개를 이용하여 합성곱 → relu →

toyourlight.tistory.com

 

36. [CNN기초] 원, 네모를 구별하는 CNN 만들기(실습) (tistory.com)

 

36. [CNN기초] 원, 네모를 구별하는 CNN 만들기(실습)

저번시간에 합성곱으로 원과 네모를 구별하는 CNN을 어떻게 구성하고, 학습할 수 있는지 그림과 함께 알아보았다. 이번 시간에는 직접 코드를 작성해 보면서 가능한지 알아보자. 1. 준비하기 1) CN

toyourlight.tistory.com

 

37. [CNN기초] 다채널(multi channel) 다루기 (tistory.com)

 

37. [CNN기초] 다채널(multi channel) 다루기

이전 시간까지 1개 채널을 가진 이미지를 1개의 필터를 이용하여 특성을 추출한 후 학습을 진행하였다. 1개 채널을 가진 이미지로 만들기 위해 흑백이미지(Grayscale)로 만들어 학습시켰다. 하지만,

toyourlight.tistory.com

 

 

 

 

6. 순환 신경망(Recurrent Neural Networks, RNN)

38.[RNN기초] 자연어 데이터는 어떻게 접근해야 할까? (tistory.com)

 

38.[RNN기초] 자연어 데이터는 어떻게 접근해야 할까?

드디어 연구를 끝냈다! 1. 들어가며 이전까지 학습한 내용의 데이터는 ( 데이터 갯수, 데이터 특징 )으로 구성된 csv 자료였거나 ( 데이터 갯수, 가로, 세로, 채널 )로 구성된 이미지 파일이었다. 이

toyourlight.tistory.com

 

39.[RNN기초] RNN(many to one) 순전파 구현(이론) (tistory.com)

 

39.[RNN기초] RNN(many to one) 순전파 구현(이론)

이전시간에 자연어 데이터를 이용하기 위해 문장을 의미 있는 단위로 구별(토크나이징)하고 구별한 토큰을 컴퓨터가 이해할 수 있는 데이터로 변환(워드 임베딩)을 실시하였다. 그리고 데이터

toyourlight.tistory.com

 

40.[RNN기초] RNN(many to one) 순전파 구현(실습) (tistory.com)

 

40.[RNN기초] RNN(many to one) 순전파 구현(실습)

이전시간에 아래의 순환 셀과 분류기(fc)에 대하여 각 가중치는 아래와 같음을 증명하였다. Wxh = ( sequence length(2), hidden node(3) ) → ( 2, 3 ) Whh = ( hidden node(3), hidden node(3) ) → ( 3, 3 ) Bh = (1, 1) Wy = ( hidd

toyourlight.tistory.com

 

41.[RNN기초] RNN(many to one) 역전파 구현(이론) (tistory.com)

 

41.[RNN기초] RNN(many to one) 역전파 구현(이론)

저번시간에 RNN의 순전파의 이론적 배경을 알아보고 코드로 구현하였다. 그렇다면 어떻게 역전파를 진행하여 가중치를 훈련할 수 있을까? 먼저 필요한 변수값을 다시 확인하자 time steps(t.s) → 3 (

toyourlight.tistory.com

 

42.[RNN기초] RNN(many to one) 역전파 구현(실습) (tistory.com)

 

42.[RNN기초] RNN(many to one) 역전파 구현(실습)

저번시간에 RNN 역전파를 BPTT(Backpropagation Through Time)로 구현하였다. 이번 시간은 이를 코드로 구현해 보자. 40차시에서 진행했던 코드를 참고하자.(https://toyourlight.tistory.com/67) 39.[RNN기초] RNN 순전파

toyourlight.tistory.com

 

43.[RNN기초] RNN(many to one) 역전파 구현(실습2) (tistory.com)

 

43.[RNN기초] RNN(many to one) 역전파 구현(실습2)

저번시간에 아래와 같이 RNN 역전파를 이용하여 문장에 의미가 있으면 1, 없으면 0을 구별하는 RNN 역전파를 구현하였다. 코드를 잘 보면 알겠지만 반복성에 의한 규칙이 존재한다. https://toyourlight.

toyourlight.tistory.com

 

44.[RNN기초] RNN(many to many) 순전파 구현(이론, 실습) (tistory.com)

 

44.[RNN기초] RNN(many to many) 순전파 구현(이론, 실습)

이전 시간까지 주어진 문장이 문법에 맞으면 1, 아니면 0으로 예측하는 RNN 기반 인공신경망을 제작하고 훈련하였다. as soon as로 배치되었을 때 1이고 as as soon, soon as as 이라면 0으로 두었다. 이번

toyourlight.tistory.com

 

45.[RNN기초] RNN(many to many) 역전파 구현(이론, 실습) (tistory.com)

 

45.[RNN기초] RNN(many to many) 역전파 구현(이론, 실습)

저번시간에 'hello'라는 단어를 이용하여 아래와 같이 순서대로 출력하는 many to many RNN 신경망을 어떻게 순전파 할 수 있는지 탐구하였다. 1. h 입력 → e 출력 2. e 입력 → l 출력 3. l 입력 → l 출력

toyourlight.tistory.com