본문 바로가기
개발로그/Python

파이썬을 활용하는 머신러닝 딥러닝 차이 그리고 ai란? 한방에 정리하기

by 그리너리디밸로퍼 2022. 12. 20.

출처: AI Network from YOUTUBE

2022.11.25 - [개발로그/Python] - 책으로 코딩 독학하시는 분, 저만의 독서법을 가르쳐드립니다.

파이썬의 대표적인 활용 영역인 인공지능(AI) 머신러닝 딥러닝 에 대해서 헷갈려하는 분들 많으시죠? 사진한장으로 보면 느낌이 오실지도 몰라서 가져왔습니다. 

 

인공지능이란? 

Artificial Intelligence 의 약자로서 AI라고도 불립니다. 사고나 학습등 인간이 가진 지적 능력을 컴퓨터로 구현해내는 가장 상위 개념입니다. 머신러닝과 딥러닝을 포함하는 단어인거죠. 

 

머신러닝이란?

Machine Learning 이라고 표기하고 컴퓨터가 스스로 학습하여 인공지능의 성능을 향상시키는 기술을 말합니다.  AI라는 개념을 실제로 컴퓨터에 적용하려면 머신러닝이란 기술이 필요한거죠, 머신러닝 -> 기계가 배운다. -> 기계가 스스로 학습하는 알고리즘 이라고 기억하시면 되겠습니다. 

 

딥러닝이란?

Deep Learning 이것은 위에 머신러닝이 (기계를 학습시키는)알고리즘을 지칭하는 말이었다면, 다양한 알고리즘 중에 하나를 지칭합니다. 인공지능이라는 개념에 머신러닝이라는 과목이 있고 딥러닝이라는 챕터의 느낌?이랄까요? 딥러닝은 인간의 뉴런과 비슷한 인공신경망 방식으로 정보를 처리하는 알고리즘을 뜻합니다. 간단히 말하면 인공지능을 만드는 방법으로 데이터를 계속 줘서 그 데이터의 패턴을 찾아내는 것입니다. 그 패턴을 인공지능이 찾아내었기 때문에 사람은 역으로 그것이 왜 그런 패턴이 되었냐?는 설명하기 어려운 프로그램이 됩니다.

 

머신러닝 사용사례 유투브 추천영상 - 출처: AI Network from YOUTUBE

머신러닝의 대표적 사례

 

머신러닝은 어디에 쓰이고 있을까? 하면 대표적으로 유투브가 추천영상을 내는 것을 들 수 있습니다. 유투브에서는 서로 다른 사용자가 비슷한 취향의 영상을 보았다면 그것을 추천영상에 띄워줍니다.나랑 비슷한 영상을 좋아한 사람이 천명이 있다면 그 천명을 분석하고, 만명 , 십만명 .. 이렇게 많은 사용자의 데이터를 계속해서 학습한다음 다양한 기반으로 골라서(필터링) 보여주는거죠. 

 

기존 프로그래밍과 머신러닝의 차이 

 

기존프로그래밍은 사람이 데이터를 판별하는 규칙을 정해주고, 프로그램에게 데이터를 주었을 때 규칙에 따라 행동(결과값)것 입니다. 그러니 데이터가 다양화된다면 규칙을 계속 수정해줘야 합니다. (업데이트 작업)

머신러닝은 컴퓨터에게  기본적인 데이터와 해답 을 정해줍니다. 그 후 이세상의 모든 동일한 개념의 다양한 데이터를 넣어서 데이터에 맞는 해답(규칙)을 찾아내게 하는 것이 머신러닝입니다. 하지만 머신러닝도 문제가 생긴다면 사람이 개입해서 수정해줘야 합니다. 

 

딥러닝의 활용사례

 

딥러닝은 (많은 양, 엄청나게 많은 양의) 데이터를 프로그램에 넣고, 정형화된 규칙을 학습하는데(=찾아낸다) 알고리즘을 층층히 쌓아서 데이터를 처리한 뒤 규칙을 찾아내게 됩니다. 이 때 알고리즘을 층층히 쌓아올려 데이터를 주고받는 모습이 사람의 뇌에서 신경망과 비슷하다고 하여 붙여진 이름이라고 하네요. 

2013년 딥마인드 팀의 벽돌깨기 게임 장면

2013년에 구글이 인수해서 알파고를 만들어낸 딥마인드팀. 딥마인드팀이 선보인 벽돌깨기 게임입니다. 처음엔 저도 계속 '이게 뭐지?' 라는 느낌으로 계속 다시보기를 했더랬습니다. ㅋㅋ 딥러닝을 강화학습에 적용하여 만든 것으로 벽돌깨기 게임의 '최고점수를 내어라'라는 골을 세팅한 뒤 벽돌게임을 두시간, 네시간 계속 하게 하는 거였습니다. 그래서 결국 한쪽벽을 뚫어 공을 위로 올리는 전략도 찾아내는 것도 보여줍니다. 같은 강화학습으로 알파고가 탄생하게 되었다네요., 

 

GitHub의 Copilot은 딥러닝으로 코딩을 할 수 있는 서비스를 내놓았습니다. 'Your AI Pair programmer '라는 타이틀로 선보이고있습니다. 2018년에 나온 Google의 BERT 는 QA(Quality Assurance)분야에서 인간을 뛰어넘었다는 평가를 받을 정도입니다. 자연어(사람들이 일상적으로 쓰는 언어) 응용 분야에서 상당한 성능향상을 보여 주목받고있습니다. 음성 인식, 내용 요약, 번역, 사용자의 감성 분석, 텍스트 분류 작업(스팸 메일 분류, 뉴스 기사 카테고리 분류), 질의 응답 시스템, 챗봇과 같은 곳에서 사용됩니다.

 

코딩, 프로그램, 플로우차트 설명

 

여기서 잠깐 IT용어 리마인드 하고 가겠습니다.  알고리즘을 이용해 코드로 적어놓으면 프로그램이 되고, 알고리즘을 그림으로 그려놓은 것을 플로우차트라고 합니다. 아래 그림은 사람이 알고리즘을 생각해서 그림으로 그려놓은 플로우차트와 딥러닝에서 학습하는 구조를 설명한 플로우차트입니다. 

 

딥러닝의 구조

 

왼쪽 사람의 플로우 차트 오른쪽은 딥러닝의 플로우차트 (=뉴럴 넷)

 

사람과 딥러닝의 플로우차트 가장 큰 차이점은 도형의 종류입니다. 사람은 여러가지의 도형을 사용하여 플로우차트를 그립니다. 딥러닝에서는 원 하나만을 사용하여 방대한 데이터를 지나가게 합니다. 

강력한 차이가 보이시나요?

 

구조가 단순하고 데이터의 양이 방대하다

 

위 오른쪽 그림에서 원 하나를 확대하면 아래처럼 됩니다.

Node of Neural Network

컴퓨터는 숫자를 처리하니까 앞쪽 X들은 숫자입니다. W는 가중치(Weight) 를 뜻합니다. 들어오는 숫자 각각에 가중치를 곱해서 시그마를 통과합니다. 시그마는 모두 합산한다는 뜻입니다. 이때 F() 는 함수를 뜻합니다. 함수에서는 모두 합산한 숫자가 0보다 작으면 0 , 0보다 크면 그 수 그대로를 반환합니다. 이 때 반환된 숫자는 Y가 됩니다. 

 

이 과정을 반복하는 것이 딥러닝의 구조이며 딥러닝의 학습 방법 입니다.

 

곱하고, 더하고 , 합해서 0보다 크냐 작냐

 

딥러닝의 구조 ,플로우차트

 

W가 학습의목표가 되고, 딥러닝은 W를 찾는 과정입니다. 벽돌깨기 게임을 해서 '최고의 점수를 낸다'의 목적을 부여받은 딥러닝은 학습 목표(W)가 최고 점수를 받을 수 있는 W들을 찾는 것.이 되는겁니다.

 

데이터 한개에 대해 랜덤한 W들을 정해놓고 시작 -> 정답이 아닌 W들은 계속해서 미세하게 조정해가며 정답을 내는 W를 도출. -> 다시 데이터 한개 넣고 W조정  ... 이과정을 데이터 갯수만큼 반복합니다. 

(노가다)?

 

좋은 W값을 찾았다?!라는 것은 

 

학습된 인공지능 데이터의 W들은 값을 고정하게되고, 이 후 다른 데이터들을 넣어도 W값은 고정된 값을 사용하게 됩니다.사람은 사람의 글씨를 구분하는 알고리즘을 구현하지 못했지만, 딥러닝의 방식으로는 사람의 글씨, 목소리, 개와 고양이등 구분할 수 있는 알고리즘을 찾았다는 이야기가 됩니다. 좋은 W값을 찾아둔 딥러닝의 알고리즘은 새로운 고양이 , 새로운 개의 사진을 주어도 모두 맞추게 됩니다. 

 

 

머신러닝(딥러닝)은 입력(데이터)와 결과값을 동시에 준 후, 결과값을 도출해내는 프로그램을 뱉어낸다.

 

 

오늘은 여기까지 적어두고 머리를 식히러 가겠습니다. 파이썬의 활용분야인 인공지능에 대해서 조금 더 이해할 수 있는 계기가 되었길 바랍니다. 배워두면 써먹을일 많은 파이썬 같이 공부합시닷!!

728x90

댓글