본문 바로가기
Machine Learning/개인 학습 기록

게임 개발자가 입문해본 머신러닝, 딥러닝 - 왜 사용할까? 어떻게 공부할까?

by KK1 2022. 1. 16.

이번에는 머신러닝, 딥러닝을 사용했을 때 이점과 제가 어떤 방식으로 공부했는지 정리하면서, 대략적인 머신러닝, 딥러닝의 필요한 이유, 공부 진행 관련으로 내용을 진행하겠습니다.


머신러닝, 딥러닝이 필요한 이유

숫자 이미지

위 이미지를 사람이 보았을 때에는 즉시 어떤 숫자인지 판단할 수 있습니다.

하지만, 컴퓨터에게 위 이미지를 보여줬을 때 어떤 숫자인지 판단하는 알고리즘을 구현한다고 생각합니다.

 

전통적인 프로그래밍 방식이라면 당연히 픽셀 하나하나 검사하여 if문을 통하여 숫자를 구분 할 것입니다.

하지만 손으로 쓴 숫자라면 사람마다 필기체가 다를 것입니다.

다양한 숫자에 대한 픽셀 검사를 모두 만든다면 굉장히 복잡하고 느린 알고리즘을 만들게 될 것입니다.

 

하지만, 인공지능을 활용하여 위 숫자 이미지 데이터들을 모델에 학습시킨 후 컴퓨터에게 전달하면 바로 해당 이미지가 어떤 숫자인지 판단해 줍니다.

이와 같이 인공지능을 알고 데이터만 가지고 있다면 좀 더 효율적인 숫자 구분을 할 수 있는 것입니다.


개인적으로 공부 진행했던 방향

PyTorch 로고

https://wikidocs.net/book/2788

 

PyTorch로 시작하는 딥 러닝 입문

이 책은 딥 러닝 프레임워크 PyTorch를 사용하여 딥 러닝에 입문하는 것을 목표로 합니다. 이 책은 2019년에 작성된 책으로 비영리적 목적으로 작성되어 출판 ...

wikidocs.net

전 가장 먼저 뭐든지 동작하는 것 부터 보고 싶어 PyTorch 프레임워크를 골라서 시작하였습니다.

위 페이지 wikidocs의 PyTorch로 시작하는 딥 러닝 입문을 보면서 처음보는 용어와 부족한 수학을 느끼게 되었습니다.

 

그래서 유튜브에 관련된 수학부분에 대한 영상이나, 다른 자료들도 열심히 봤지만 베이스가 깔려있지 않아서 그런지 전부 이해할 수 없는 내용들 뿐이었습니다. 일단 따라만들기 위주로 진행하였습니다.

 

인터넷 자료만 보고 따라만드는 것만으로는 부족하여 책 한권을 보기 시작하였습니다.

혼자 공부하는 머신러닝+딥러닝

기초로는 가장 좋지 않을까 싶어서 구매했던 책입니다.

위 책은 사이킷런(scikit-learn), 판다스(Pandas), 텐서플로(Tensorflow) 를 활용하여 머신러닝 개념부터 딥러닝까지 배워볼 수 있는 책이었습니다. 다양하게 실습해보기에는 좋은 책이었습니다.

 

하지만 프레임워크 내부의 동작까지 이해할 수 없었던 상황, 이때 한 권의 책을 추천받게 되어 보기 시작하였습니다.

밑바닥부터 시작하는 딥러닝

한빛미디어에서 나온 밑바닥부터 시작하는 딥러닝을 보기 시작하였고 위 책은 프레임워크없이 Numpy 라이브러리만 활용하여 딥러닝 프레임워크를 직접 만들어보면서 배울 수 있는 책이었습니다.

한 권에 많은 내용들이 자세히 들어있어 보기 좋은 책이었습니다. 하지만 아직도 어렵습니다😥.

이후 추가로 책을 추천받게 됩니다.

신경망 첫걸음

한빛미디어에서 나온 신경망 첫걸음. 위 책이야 말로 저에게 구원투수 같은 책이었습니다.

쉽게 인공 신경망이 어떻게 동작하는지 알려주고, 구현도 해보면서 딥러닝의 기본기를 배울 수 있는 책이었습니다.

이 책을 보면서 딥러닝을 동작시키는데 필요한 동작의 많은 부분을 이해할 수 있었습니다.

 

머신러닝과 딥러닝을 묶어서 이야기하고 있지만,

이전 포스팅에도 썼던 것 처럼 머신러닝의 하위 개념에 딥러닝이 있습니다.

하지만 머신러닝을 공부하고 딥러닝을 공부한다? 이건 매우 고난의 길을 가게 되는 부분입니다.

머신러닝은 좀 더 기계적이고 알고리즘이 복잡한 광범위한 부분을 공부해야하기 때문입니다.

 

그렇기에 인공지능 관련하여 프로젝트 또는 업무에서 R&D를 하게 된다면 딥러닝만 공부해도 무관합니다.

주로 서비스에 적용되는 부분은 대부분 딥러닝 모델 관련 내용일 것 입니다.

(물론 개인 요구 사항, 회사 요구사항 마다 다를 수 있습니다😅)

 

인공신경망(Neural Network)

공부를 하면서 인공신경망(Nerual Network)이 어떻게 구성되어있고, 은닉층(Hidden Layer)가 왜 존재하며, 활성화 함수(Activation Function)를 사용하는 이유, 역전파(Back Propagation)이 왜 필요한지 등 내용을 집중적으로 공부하시면 기본적인 딥러닝에 관련된 내용은 파악할 수 있습니다.

 

여기서 수포자라도 위 내용을 대략적으로 이해하는데에는 어려움이 없을 것입니다.

신경망 첫걸음과 구글링이 함께 할 수 있습니다! 


위와 같은 과정을 통하여 저는 딥러닝을 학습하였습니다.

아직 부족하지만 공부를 진행하면서 지속적으로 기록을 남길 것입니다.

 

다음은 딥러닝의 동작 방식과 제가 이해한 인공신경망에 대해 이야기해보겠습니다.

반응형

댓글