비전공자를 위한 개쉬운 인공지능 코딩- 2편 바로 딥러닝 만들기 (2-1부)

 지난 시간에는 비전공자도 인공지능 충분히 만들 수 있는 이유, 필요한 준비물과 간단한 환경설정을 해보는 숙제를 했다

이제 본격적으로 인공지능 만들기 컨텐츠를 시작할 것인데, 내 경험상 논문을 작성하는 대학원생이나 연구원 이정도의 깊이가 필요하지 않은 이상, 정석적으로 수학적 기초 접근은 오히려 흥미가 뚝뚝 떨어지고 재미가 없다.

사실 인공지능이라고 해도 프로그램 연구개발 자체가 하다보면 노잼시기가 오는데, 시작부터 '선형관계' 라던지, '퍼지이론' 이런걸 하면 금방 흥미가 없어진다고 자신있게 말할수 있다.

(원래는 저렇게 기초를 다지는게 정석이긴 함^^)

그래서 이번 2강은 바로 딥러닝 만들기를 해보면서 모르는 단어, 구조, 1강에서 말한 '레고' 의 사용법을 하나하나 파헤쳐보며 탑-다운 방식으로 배워보자 

오늘 배울 딥러닝 프로그램은 아래와 같은 순서로 만들어진다, 또한 심화적인 기술, 기능을 가진 인공지능 프로그램들도 아래와 같은 순서에 크게 벗어나지 않는다

1. 학습용 데이터 가져오기, 전처리하기, 라이브러리 로드

2. Keras를 통한 인공지능 모델 정의

3. Keras 모델 구현 및 컴파일

4. Keras 모델 성능 평가

5. 인공지능한테 미래 예측 시켜보기


여기서 내가 원하는 탑-다운 공부방식이란 교육방법론 같이 거창한게 아니고, 예를들어 독자가 ' 1. 학습용 데이터 로드, 전처리' 를 읽으면서 '전처리' 란 단어를 보고 모르는 단어다 싶으면 검색을 통해 어려운 단어 혹은 모르는 단어를 -> 자신이 알고있는 간단한 단어로 이루어진 설명으로 재해석 이면 충분하다 

따라서 본 글도 최대한 비전공자 눈높이에 맞춰서 쓸 예정이지만 '컴파일' '전처리' 와 같은 단어는 모르면 구글링을 통해 간단한 자기만의 한줄요약을 하면서 읽는게 기억에 잘 남고 이해에도 좋다 (내가 적기 귀찮아서 그러는게 아님)


아무쪼록 본 과정에서는 'Keras' 라는 인공지능 프레임워크를 사용할것인데 쉽게 비유하자면 1강에서 표현한 Keras 라는 회사에서 나온 인공지능 조립용 '레고'라고 생각하면 된다.

Keras 말고도 'Pytorch' 라거나 'tensorflow' 와 같은 프레임워크, 즉 레고회사가 많지만, 일단 사용하는 구조나 원리는 다 똑같고 그냥 케라스가 코드가 좀 짧기 때문에 내가 타이핑하기도 편하고, 비전공자도 구현하기에 손가락이 굉장히 편하다 (어디가 틀렸는지 쉽게 찾을 수 있기 때문)


1. 학습용 데이터 가져오기, 전처리하기, 라이브러리 로드

자기의 Colab을 키고 1강에서 숙제로 내준 numpy와 pandas가 설치된 노트를 연다.
알려준 Import 사용방법을 통해 아래와 같은 라이브러리, 즉 레고를 가져와(로드) 해보자 

from numpy import loadtxt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

위 코드를 간단하게 설명하면, 'numpy' 레고회사에서 'loadtxt' 레고를 가져온다
'keras' 레고회사에서 만든 'model' 레고 종류에서  'Sequential' 레고를 가져온다
'keras' 레고회사에서 만든 'layers' 레고 종류에서  'Dense' 레고를 가져온다
라고 이해하면 된다.

여기서 Sequential은 우리가 좋아하는 주식, 코인 같은 날짜에 따라서 주루룩 '순차적'으로 생성되는 데이터 (전문용어로 시계열 데이터라고한다)를 만들기 위한 '바탕판 레고'와 같은 역할을 한다 


요 'Sequential' 이라는 시계열 데이터를 위한 바탕판 레고에 우리의 인공지능 레고들을 하나씩 꽂으면 된다.
그 밑에 'Dense' 레고는 우리가 뉴스나 이런저런데에서 '인공지능!' 이라고 흔히 표현할 때 대표적으로 사용되는 신경망이라고 생각하면 된다 



이게 Dense 라고 하는 신경망 역할을 하는 레고다. 전문영어로 fully-connected- layer 이라고 하는데, 이거 사진 딱 보고 겁먹지 말고 그냥 우리 뇌세포 신경망이라고 생각하면 된다.

이 Dense 부품이 하는 주요 역할은 '특징' 을 추출하는 것 이다. 엄청나게 많은 데이터 속에서 인공지능 dense 부품이 신기하게도 알아서 이전의 뉴런(사진에서의 동그라미를 뉴런이라고 한다)에서 추출한 정보를 그 다음, 그 다음 뉴런층으로 착착착 넘기는 역할을 한다


사진으로 보면 복잡하고, 설명으로 들으면 뭔가 많은 일을 할 것 같지만  우리 Keras 회사 직원 형님들이 열심히 일하고 코딩해서 저 신경망을 잘 만들어 놨으니 저렇게 우리는 명령어로 'dense' 띡 치고 사용만 하면 된다. (실제로 네트워크 보안 쪽 외주개발을 할때 내가 사용한 코드 중 일부다)

이것으로 2-1 강의 인공지능 구현을 위한 '라이브러리 로드' 의 설명이 끝났다. 정말 더 설명할 게 없고 앞으로 내가 라이브러리 로드를 할 때 그냥 따라서 타자만 치고 저 라이브러리(레고)가 무슨 역할을 하는지 모르는게 나온다면 구글링을 통해 한번만 슥 보면 된다. 


오늘의 숙제:

1. 저번에 만든 Colab 노트에 

from numpy import loadtxt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
이거 붙여넣고 '실행' 해보기


2. 구글링으로 'loadtxt' 가 뭔지 한번 보기

3. 내가 딥러닝으로 '예측'해보고싶은 데이터가 뭔지 생각해보기  

영상설명: https://www.youtube.com/channel/UCzk_yj0_oAikUlP6qjhg_yQ/featured

댓글

이 블로그의 인기 게시물

시험에 나오는 전기공사 산업기사정리 전기기기-직류기의 구조

익리덤 없는사람은 불쌍해,,후기, 단점, 도색 (MGEX 스트라이크 프리덤)

주식의 기술적 분석- 이큐볼륨차트(EQui volume chart)