클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

나의 첫 머신러닝 1 - 인공지능과 머신러닝, 딥러닝 본문

인공지능/머신러닝

나의 첫 머신러닝 1 - 인공지능과 머신러닝, 딥러닝

huenuri 2024. 9. 27. 11:51

오늘부터 혼공머신 책으로 머신러닝과 딥러닝을 공부해보기로 했다. 딥러닝은 좀더 깊이있게 공부해보고 싶어서 책도 두 권 정도 마련해놓았다. 이 공부는 머신러닝과 딥러닝의 기초적인 단계를 쌓는 과정이다. 그러니까 더 심층적인 학습을 위해서는 어려운 책으로 공부하는 시간이 필요할 것이다.

이 책은 600쪽이 조금 안 되는 나름 두꺼운 책이지만 난 3일 이면 책을 마스터하고 강의도 모두 들을 수 있으리라 생각하고 있다. 강의도 한 단원 당 1시간 정도 되고 총 25개의 강의가 마련되어 있다. 그럼 이제 본격적으로 머신러닝 공부를 시작해볼 것이다.


 

 

 

학습 목표

인공지능, 머신러닝, 딥러닝이 무엇인지 알아보고 그 차이를 살펴본다.


 

 

인공지능과 인공지능의 역사

 

 

인공지능은 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술이다. 인공지능의 역사는 약 80년 남짓 되었지만, 사람들은 훨씬 더 오래 전부터 지능적인 시스템을 생각했다.

 

1. 인공지능 태동기

  • 1943년 워런 매컬러와 월터 피츠는 최초로 뇌의 뉴런 개념을 발표
  • 1950년 앨런 튜닝은 인공지능이 사람과 같은 지능을 가졌는지 테스트할 수 있는 유명한 튜링 테스트를 발표
  • 1956년 다트머스 AI 컨퍼런스에서 인공지능에 대한 장밋빛 전망이 최고조에 도달

 

이것이 바로 그 유명한 튜링 테스트이다.


 

 

 

2. 인공지능 황금기

  • 1957년 프랑크 로젠블라크 로지스틱 회귀의 초기 버전으로 볼 수 있는 퍼셉트론을 발표
  • 1959년 데이비드 허블과 토르스텐 비셀이 고양이를 이용해 시각 피질에 있는 뉴런 기능을 연구 → 노벨상 수상

 

 

 

 

이후 컴퓨터 성능의 한계로 AI 겨울이 도래했고, 이 기간 동안 인공지능에 대한 연구와 투자가 크게 감소했다. 이 시기를 극복한 후 인공지능은 다시 각광받기 시작했고 연구자들은 물론 대중 매체도 어느 때보다 큰 관심을 갖게 되었다. 나도 이 때문에 지금 인공지능 사관학교에 입교하여 열심히 공부하고 있을 것이다.

 

인공지능은 사람과 구분하기 어려운 컴퓨터 시스템 지능을 가진 강인공지능과사람의 열을 도와주는 보조 역할만 가능한 약인공지능이 있다. 예를 들면 음성 비서, 자율 주행자동차, 음악 추천 등이 있다. 아직 강인공지능에 도달하지는 못했고 영화에서만 등장하지만 머지 않아 강인공지능으로 사람의 지능을 뛰어넘는 AI 시대가 도래할 거라 생각한다.

그때가 되면 어떤 세상이 될지 한편으로 기대가 되면서도 무서운 시대가 될 것 같아 두렵기도 하다. 난 이러한 시대를 준비하며 AI에 대해 열심히 공부해보기로 했다.

 

내가 하고 싶은 일은 비록 게임과 앱 개발이지만 인공지능 분야도 공부해보니 전망이 밝고 나름 할만 했다.


 

 

 

머신러닝이란

머신러닝은 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야이다. 인공지능의 하위 분야 중에서도 지능을 구현하기 위한 소프트웨어를 담당하는 핵심 분야이다.

머신러닝은 통계학과 깊은 관련이 있다. 통계학에서 유리된 머신러닝 알고리즘이 많으며 통계학과 컴퓨터 과학 분야가 상호 작용하면서 발전하고 있다. 

 

컴퓨터 과학 분야의 대표적인 머신러닝 라이브러리는 사이킷런이다. 이 라이브러리는 파이썬 API를 사용하는데 파이썬 언어는 배우기 쉽고 컴파일하지 않아도 되기 때문에 사용하기 편리하다.

 

 

머신러닝 라이브러리에 포함된 알고리즘들은 안정적이며 성능이 검증되어 있다. 프로그래머가 직접 알고리즘을 구현하느라 힘들게 프로그램을 짤 필요가 없다. 

사이킷런이 있기 전까지 머신러닝 기술은 대부분 폐쇄적인 코드와 라이브러리로 통용되었다. 해당 분야에 대해 전문 교육을 이수하거나 비싼 비용을 지불하고 구매해야 했다. 하지만 사이킷런과 같은 오픈 소스 라이브러리의 발전 덕분에 머신러닝 분야는 폭발적으로 성장했다. 덕분에 현대의 개발자는 머신러닝 알고리즘을 이해하고 사용할 수 있어야 한다.

 

이런 현상으로 인해 새로운 이론과 기 술은 직접 코드로 구현되고 통용되어야 그 가치를 입증할 수 있게 되었다. 코드로 구현되어 성능을 입증하지 못하면 탁상공론에 지나지 않고 사람들의 주목을 끌기 어렵다.


 

 

 

딥러닝이란

딥러닝은 많은 알고리즘 중에 인공 신경망을 기반으로 한 방법들을 통칭한다. 종종 사람들은 인공 신경망과 딥러닝을 크게 구분하지 않고 사용한다. 1998년 얀 르쿤이 신경망 모델을 만들어 손글씨 숫자를 인식하는데 성공했다. 이 신경망의 이름을 LeNet-5라고 하며 최초의 합성곱 신경망이다.

2012년에 제프리 힌턴의 팀이 이미지 분류대회에서 기존의 머신러닝 방법을 누르고 압도적인 성능으로 우승했다. 힌턴이 사용한 모델의 이름은 AlexNet이며 역시 합성곱 신경망을 사용했다. 이때부터 이미지 분류 작업에 합성곱 신경망이 널리 사용되기 시작했다.

 

 

군내에서는 2016년 이세돌과 알파고의 대국으로 인해 딥러닝에 대한 관심이 크게 높아졌다. 복잡한 알고리즘을 훈련할 수 있는 풍부한 데이터와 컴퓨터 성능의 향상, 그리고 혁신적인 알고리즘 개발로 인공 신명망은 이전과 다르게 놀라운 성능에 달하게 되었다.

2015년 구글은 딥러닝 라이브러리인 텐서플로를 오픈소스로 공개했다. 텐스플로는 공개와 동시에 큰 인기를 얻었으며 아직까지 가장 널리 사용되는 딥러닝 라이브러리이다. 페이스북도 2018년 파이토치 딥러닝 라이브러리를 오픈소스로 발표했다. 이 라이브러리의 공통점은 인공 신경망 알고리즘을 전문으로 다루고 있다는 것과 모두 사용하기 쉬운 파이썬 API를 제공한다는 점이다.

 

 


 

 

 

학습을 마치고

오늘 첫번째 수업을 듣고 책 내용을 정리하며 학습을 진행했다. 수업이 정말 기대가 되고 빨리 머신러닝 툴을 익혀보고 싶은 마음이 든다. 

다음 포스트에서는 코랩 사용법에 대해서 학습해보려고 한다. 주피터 노트북 사용법을 잘 알고 있지만 코랩은 왠지 익숙하지 않고 여전히 잘 다루지 못한다. 이번 기회에 코랩과 더 친해질 수 있을 것 같다.