데이터 과학

Kaggle에서 딥러닝 시작 본문

Kaggle 데이터 분석, 딥러닝

Kaggle에서 딥러닝 시작

티에스윤 2022. 8. 28. 21:21

캐글(kaggle)은 데이터 분석과 딥러닝 연구를 하는데 상당히 좋은 사이트입니다. 

가장 큰 이유는 새로운 데이터와 알고리즘들이 새롭게 올라옵니다. 시기별로 유행을 알 수 있고, 많은 예제로 실습을 연습해서 프로그래밍 실력을 향상할 수 있습니다. 

 

딥러닝에 대한 학습이 가능한 사이트입니다. 

 

다음은 컨볼루션 인공신경망(CNN)에 대한 설명입니다. 

 

https://www.kaggle.com/code/yassineghouzam/introduction-to-cnn-keras-0-997-top-6

 

Introduction to CNN Keras - 0.997 (top 6%)

Explore and run machine learning code with Kaggle Notebooks | Using data from Digit Recognizer

www.kaggle.com

 

 

인공지능을 처음 접하는 학생은 CNN이라고 하면 상당히 낯설고 어렵게 느껴집니다. 이미지 학습을 위해 1995년 LeCun과 Bengio가 만들어낸 인공지능 기술입니다. 

 

Feature Extraction 알고리즘을 이용해 특징을 추출하고 이후 정보를 표현하는 풀링(pooling) 기법을 사용하여 학습을 하는 방법으로 프로그램을 작성합니다. 

 

중간중간에 함수를 주면서 심층학습을 진행하면서 좀 더 정밀하게 학습하는 방법입니다. 

이렇게까지 이야기하면 잘 모르겠다고 할 것입니다. -..-;;

 

인공지능이라고 하면 인공신경망이라고들 알고 있는데, 인공신경망은 인공지능에서 사용되는 알고리즘 중에 하나입니다. 

인공신경망을 공부하려면 처음에는 XOR Problem이 나타난 이유와 이를 해결하기 위한 멀티레이어 퍼셉트론, 그 이후 성능을 개선시킨 오류역전파(error- Back Propagation) 알고리즘을 이해해야 합니다. 

 

오류역전파 알고리즘이 어떻게 진행되는지 알고 있어야지 딥러닝 프로그래밍에 대해 이해 할 수 있습니다.

그 이유는 오류역전파의 한계점을 극복한것이 딥러닝인데, 딥러닝도 오류역전파의 알고리즘으로 구성되어 있습니다.

 

그리고, 파이썬을 공부해야 합니다. 그 이유는 프로그래밍으로 현실화시킬 때 사용하는 언어가 파이썬입니다. 

대부분의 경우 라이브러리가 제공되기 때문에 세밀한 프로그래밍이 필요하지는 않습니다. 

 

그렇지만 기본적인 문법과 numpy, tensorflow, keras와 같은 라이브러리를 운영할 수 있는 능력은 있어야 합니다. 

 

설치하고 사용하는 방법은 다음 링크에서 찾아볼 수 있습니다. 

 

https://tsyoon.tistory.com/59?category=1054137 

 

비주얼 스튜디오에서 텐서플로우 설치

비주얼 스튜디오에서 텐서플로우 설치해서 사용하는 방법을 알려드립니다. VS 2022버전을 설치하면 파이썬과 텐서플로우를 설치하여 사용할 수 있습니다. 아래 링크에 접속하여서 비주얼 스튜디

tsyoon.tistory.com

https://tsyoon.tistory.com/36

 

Fashion MNIST

딥러닝을 공부할 때 가장 먼저 만나게 되는 예제가 MNIST 입니다. MNIST는 뉴욕대의 Recunn 교수가 필기체 인식을 위한 알고리즘 개선을 위해 연구하는 분야로 Modified National Institute of Standards and Tech..

tsyoon.tistory.com

 

Fashion MNIST의 경우는 딥러닝을 처음 공부 할 때 학습해야 하는 가장 기본적인 예제입니다. 

물론 전부 이해하면서 프로그래밍 할 필요는 없습니다. 

앞으로 배우면서 이해하면 되는 것이니깐요. 

 

 

이 글을 읽다보면 딥러닝이 너무 어렵겠다. 오류역전파에 대한 이해도 어려울 것 같다는 생각이 들면 XOR 문제와 오류역전파의 알고리즘부터 천천히 읽어보면서 프로그래밍을 하면 됩니다. 

 

오류역전파는 간단한 미분과 함수(시그모이드)가 사용되기에 그렇게 어렵지 않습니다. 

오류역전파 알고리즘을 간단하게 표현하면 다음과 같겠네요. 

 

1. 첫번째 웨이트와 두 번째 웨이트 값을 랜덤 하게 만들어서 바이너리로 만들어진 입력값에 연산(w1, 첫 번째 w)을 합니다. 

2. x1*w1과 같이 연산된 결과를 시그모이드 함수를 통해 발산합니다. 이후 이 발산된 값과 두번째 웨이트(w2, 두 번째 w)를 연산합니다. 

3. 두번째 웨이트 값 연산 이후 다시 한번 시그모이드 함수를 통해 발산합니다. 

4. 이 값과 실제 값의 오차를 구합니다. 

5. 오차값이 미리 설정한 기준값보다 크면 그 오차만큼 변화율을 적용합니다. 변화율은 편미분을 사용합니다.

6. 변화율을 공평하게 시그모이드 함수의 변화값을 적용하여 두 번째 웨이트 값으로 전달하여 웨이트 값을 변화시킵니다. 

7. 다시한번 시그모이드 함수의 변화값(미분)을 통해 첫 번째 웨이트 값을 변화시킵니다. 

8. 1번부터 다시 시작합니다. 미리 설정한 기준값보다 오차값이 작으면 학습을 멈춥니다. 

 

간단하게 나타낸 오류역전파 알고리즘이지만 파이썬으로 프로그래밍을 하다보면 정말 간단하다는 것을 알 수 있습니다. 

 

아래 링크를 참고해 주세요. 

 

https://tsyoon.tistory.com/5?category=987998 

 

오류역전파의 간단한 원리

인공 신경망에서의 오류역전파는 입력과 은닉층(Hidden layer)의 연산의 결과와 활성화 함수(activate function)의 발산으로 구성되어 있다. 1. 입력값과 은닉층의 연산의 결과 2. 연산의 결과에 대한 활

tsyoon.tistory.com

https://tsyoon.tistory.com/44?category=987998 

 

멀티레이어 퍼셉트론

Multi layer Perceptron 으로 현재 딥러닝의 시작이고, XOR Problem을 해결 했던 알고리즘입니다. 이후에, 오류역전파(error - Back Propagetion)이 나오면서 알고리즘의 완성도가 높아졌습니다. 어떻게 구성되는

tsyoon.tistory.com

 

우선은 오류역전파의 간단한 원리에 대해 학습을 해 보고, 잘 이해가 어려우면 멀티레이어 퍼셉트론에 대해 학습해 보면 됩니다. 

실제값과 계산된 값의 변화율을 찾아내기 위해 필요한 것은 미분입니다. 특정 값에 대한 미분 값이 필요하니 편미분이 사용됩니다. 

 

미분에 대하여 잘 모르면 아래 링크를 통해 학습하면 됩니다. 

 

https://tsyoon.tistory.com/25?category=1000031 

 

인공지능, 접선의 기울기와 경사하강법

인공신경망을 공부하다보면 필연적으로 마주쳐야 하는 이론이 경사하강법(gradient desendent) 이론입니다. 가중치 값에 대한 변화율을 만들기 위해 변화된 값을 찾는 방법으로 오류역전파 알고리즘

tsyoon.tistory.com

 

어려운 부분이 있으면 조금씩 조금씩 이해해 나가면서 공부하면 됩니다.

 

딥러닝 그렇게 어려운 분야가 아닙니다.