비전공자를 위한 개쉬운 인공지능 코딩- 1편 환경설정

요즘 유튜브나 이런저런 광고들을 보다보면 코딩, 프로그래밍이 굉장히 인기다

반면에 잘 살펴보면(내가 본 바로는) 대다수가 프론트엔드, 웹디자인, 게임 만들기, 서버 만들기 등이 주류를 이루고 인공지능 연구개발을 다루는건 드물다

아마 인공지능, 신경망, 최적화 같은 용어 기반으로 접근해서 수식 팍팍 튀어나오니까 많은 비전공자들이 심리적인 거리를 느껴 수요가 적어 그만큼 다루는 컨텐츠의 공급도 적은 것 같다

사실 인공지능은 철학이자 인문학 혹은 초등학교때 배웠던 '문제푸는 방법찾기' 와 같다

인공지능은 크게 머신러닝/ 강화학습/ 딥러닝 이렇게 분류가 되고는 하는데, 이 세가지가 다루는 문제를 합집합으로 표현하면 분류(classification)과 회귀(regression)이다. 이 외에도 생성적 적대 신경망이라던가 분산학습이라던가 등등 있는데 큰 틀로보면 보통 저 두가지 문제로 많이 입문하고 사용처도 많은 것 같다



-분류(classification) 는 인공지능이 사람이 관계성을 찾기 어려운 복잡한 데이터를 학습하여 유의미한 관계를 찾아내 파악하거나, 혹은 이미지 데이터를 인식하거나 해서 요즘 많이 사용되는 자율주행 차량에 사용되거나 한다.


-회귀(regression)는 인공지능이 연속적인 데이터, 예를들어 주식같은 데이터를 학습하여 차트와 거래량의 과거의 관계성을 파악해 미래를 예측하거나 하는데 사용되거나 한다.


이를 비롯해 부족한 학습용 데이터를 생성한다던가, 스스로 똑똑해진다던가 하는 많은 인공지능 분야들이 있다

여기서 수학이 팍팍 나오고 어렵고 그러는건 성능을 좋게 만드는 관점에서 등장하지, 인공지능을 만들기 위해서는 전문적인 사전지식보다는 '어떤' 문제를 '어떻게' 접근하여 해결할것인가? 라는 아이디어가 더 중요하다

사실 나도 인공지능SW로 실제로 메인 수입원인 만큼 가장 어려웠던 부분이 아래와 같다

  • 1단계: 여기서 무엇이 문제일까? 문제, 즉 어떠한 불편함, 사건 등에 인공지능이 어느 부분에서 도움이 될까 파악하기
  • 2단계: 문제를 해결해야 하는 이유는 무엇입니까? 문제를 인공지능을 개발해 해결함으로서 얻는 이득, 개선점, loss등을 파악하기
  • 3단계: 문제를 어떻게 해결할 것인가?  문제를 잘 해결하기 위한 인공지능의 종류, 작동방식(이렇게 이렇게 해서 해결해야지~) 등 정하기 
  • 4단계: 데이터 선택 : 인공지능은 기본적으로 엄청난 능력을 가진 백지상태의 아이와 같은데 그 아이를 엄청난 양의 데이터를 공부시키는게 첫번째 단계라서 적절한 학습용 데이터의 취득이 중요
  • 5단계: 데이터 변환 및 전처리 : 취득한 데이터를 인공지능이 잘 소화할 수 있게 다듬는 과정 (나는 개인적으로 이게 제일 귀찮고 어렵다).

위와 같은 다섯단계를 거치면 본격적으로 인공지능을 구현하면 되는데 사실 가장 어려운 부분을 슥 읽어보면 전문적인, 수학적인 depth보다는 인문철학사회경제적인 다양한 경험과 아이디어가 더 중요하다는 것을 알 수 있다.

또한 '나는 개발용 고성능 CPU가 없어요,,' 라던가 '리눅스 OS CPU가 없어요' 와 같은 물리적인 문제는 요즘 전혀 문제가 되지 않는다  



요즘은 세상이 좋아져서 구글의 Colab을 이용해 가상의 좋은 파이썬 개발환경을 구글 계정만 있으면 이용할 수 있고 인공지능을 한땀한땀 선언하면서 만들 필요없이 Keras, Pytorch 등의 많은 툴이 있어서 레고같이 조립하면 된다.


따라서 이제부터 알려줄 인공지능 개발 및 구현 방법은 비전공자도 굉장히 편한 환경에서 인공지능을 만들 수 있도록 레고 조립하는 방법과 레고 블럭들의 사용방법, 꿀팁 이런거를 먼저 알려주고 일단 조립부터 할수 있게 만들어주는 컨텐츠다

조립한 인공지능을 고성능으로 뽑아내기 위해서 수학적인 깊이있는 설명은 추후에 하던가 딱 필요할때 중간중간에 할 예정이다


1강 특유의 '힘을내 누구나 할수있어' 류의 소리는 여기까지하고, 오늘은 간단한 'Import' 사용법 하나만 해보도록 한다

파이썬 등의 코드 스크립트를 볼 때, 맨위에 import 어쩌구저꺼구가 주르륵 있는데 

이 import가 내가 계속 비유하는 인공지능 코딩 입문은 레고라면 생각하면 된다 의 대명사다

레고도 테크닉, 듀플로, 아카데미 등등 종류가 굉장히 많으면서도 서로 호환되어 나만의 레고를 만들수 있듯, Import는 남이 만들어놓은 프로그램을 슥하고 편하게 레고 봉투째로 가져오는거다 

그리고는 

'pd' , 'Json' 과 같이 위 사진에서 import해온 것을 그대로 선언해서 가져와 끼워넣으면 된다 


심지어 import 짤의 밑에서 두번째 import keras.backend as K 처럼 as 를 사용해keras.backend 를 매번 사용하면 타자치기가 귀찮으니 K 라는 줄임말로 사용할 수도 있다.


오늘의 숙제:

-Google에 가입해서 Colab 사용할 수 있게 해놓기

-Colab 들어가서 '파일' -> '새 노트' 켜서

import numpy as np

import pandas as pd

입력한 후 '셀 실행' 눌러보기

- numpy와 pandas 가 무슨 역할을 하는 레고인지 구글링해서 공부해보기 

-인공지능으로 본인이 '어떤'문제를 해결할지, '어떻게' 사용해서 돈을 한번 땡겨볼지 생각해보기

ex: 주식/코인 차트를 예측,, 부동산 전망 예측,, 자율주행차에 들어가는 사물인식 프로그램,, 자영업하기에 최적의 위치 찾기,, 취업하기 위해 실력 쌓기,, 이집트 고대문자 해석하기,,번역기 만들기,, 회사업무에 사용할 엑셀용 인공지능 등


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

댓글

이 블로그의 인기 게시물

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

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

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