반응형

인공지능(AI) 프로그래머가 되고 싶다.

처음 보는 단어가 많다.

하나씩 정리해 본다.

인공지능(AI) 개발자의 필수 공부 딥러닝(DeepLearning) 그리고 퍼셉트론(Perceptron)

인공지능(AI) 개발자가 되기 위해서는 딥러닝(DeepLearning)을 배워야 한다.

쉽지 않을 거라 생각했지만 역시 용어가 어렵다.

다양한 숫자 4 모양새

 

위 숫자 이미지를 보면 모양새는 다르지만 우리는 4라는 것을 안다.

어떻게 알까?

다양한 사람들이 쓴 숫자 4를 수 없이 봤고 뇌 기억에 저장된다.

그 정보를 기준으로 어떤 숫자와 4가 비슷하면 아래 순서대로 뇌 기억 정보와 비교 확인한다.

숫자 4를 눈으로 보고 시신경을 통해 뇌로 전달한다.

전달된 숫자 4는 뇌 기억 속 비슷한 숫자 4 모양새 정보와 비교한다.

숫자가 4인지 판단한다.

판단이 완료되면 그 결과가 나온다.

모양새가 비슷하다고 확인되어서 숫자 4로 인식한다.

숫자 4가 아닌 이상한 모양새

위 숫자는 4 일까? 아닐까? 확신이 서지 않는다.

그 이유는 숫자 4 모양새로 인식하기 힘들기 때문이다.

숫자 5인지 아닌지를 판단하기 위해서 다양한 숫자 4 모양새를 보고 기억한다고 했다. [다양한== 딥(Deel)]

기억된 모양새와 같거나 비슷하다면 숫자 4로 인식한다.  [인식==러닝(Learning)]

이것이 딥러닝이다.

이제 인공지능 프로그래머로 딥러닝을 다시 보자.

딥러닝은 뇌 원리를 기반으로 데이터를 처리할 수 있는 인공지능(AI) 방식이다.

딥러닝은 우리말로 깊이 있는 학습이란 뜻이다.

컴퓨터에게 학습을 시켜서 최대한 정확한 값을 찾는 방법이 딥러닝이다.

인공지능 개발자라면 퍼셉트론을 알아야 딥러닝을 시작할 수 있다.

깊은 학습, 딥러닝을 하기 위해서 퍼셉트론 알고리즘이 필요한 것이다.

비슷한 모양새의 숫자를 보고 같은 숫자로 결과를 도출하는 우리 뇌의 기능일 인공지능에서 딥러닝으로 구성한다.

인공지능에서는 위 기능을 퍼셉트론이 담당한다.

더 어려운 용어 퍼셉트론(Perceptron)이 나타났다.

딥러닝을  공부하면 낯설고 어렵고 처음 보는 단어들이 자주 나온다.

어려운 내용을 초보 개발자도 쉽게 이해하도록,

하나씩 쉽게 설명할 계획이니 어려워 말고 같이 출발해 보자.

컴퓨터에게 깊이 있는 학습을 어떻게 시키는 걸까?

그 원리라는 퍼셉트론(Perceptron)은 무엇인가?

 

퍼셉트론(Perceptron)이란?

퍼셉트론은 알고리즘이다.

Percept는 지각에 의한 인식 결과라는 뜻이다.

1957년,

퍼셉트론은 인공지능 선구자 중 한 명,

심리학자인 미국 프랑크 로젠플랫(Frank Rosenblatt)이 개발한 인공지능 원리다.

우리가 눈, 코, 입, 귀, 손 등을 통해 정보를 입력받는다.

이렇게 수집된 정보는 뇌를 통해 무엇인지 판별된다.

예를 들어보자.

보글보글 소리가 들린다. (청각)

라면 냄새가 난다. (후각)

냄비에서 라면이 끓고 있다. (시각)

젓가락으로 한 입 먹어본다. (판별)

맛있는 라면

이렇게 수집된 정보로 라면임을 안다.

퍼셉트론도 같은 방식으로 프로그램을 통해 처리된다.

다수의 신호를 입력받는다. (청각, 후각, 시각 등)

하나의 신호로 출력받는다. (라면으로 판별)

이것이 컴퓨터에서 구현하는 퍼셉트론이다.

 

딥러닝도 알았고 퍼셉트론도 알았다.

좀 더 깊이 있게 보면,

딥러닝은 신경망 기반으로 구성되어 있다.

헛, 갑자기 나타난 신경망... 이건 또 무엇인가?

우리 뇌에 신경계를 구성하는 1000억 개 정도 뉴런이 있다.

신경망은 우리 뇌가 작동하는 방식과 비슷하게 컴퓨터로 구성한 모델이다.

퍼셉트론은 컴퓨터에서 뉴런 역할을 한다.

뭔가 복잡하게 이야기한 듯 보인다.

정리하면, 인공지능(AI) 개발자는 딥러닝을 배운다.

신경망의 기반으로 구성된 딥러닝의 시작은 퍼셉트론이다.

퍼셉트론은 신경망의 기초가 되는 인공지능 모델이다.

인간 뇌를 기반으로 컴퓨터에서 인공적으로 지능을 구축하기 위한 모델이 필요하다.

세상에~ 엄청 오래전에 만든 알고리즘인 퍼셉트론으로

우리는 현재의 인공지능을 배우고 있다.

 

퍼셉트론 파헤치기.

도대체 퍼셉트론은 어떻게 생겼을까?

퍼셉트론을 배워서 어떻게 사용하고 무엇을 할 수 있나?

이 궁금증을 해결하려면 퍼셉트론 구조를 꼼꼼히 살펴보면 된다.

다음 그림을 보자.

인간 뉴런
퍼셉트론

 

원은 뉴런이다.

입력값  x

원 안의 x1, x2는 2개의 입력값을 가지고 있는 신호다.

눈과 코로 보고 냄새를 맡아 뇌에 2가지 신호를 전달하는 상황을 상상하면 된다.

 

가중치 w

w1, w2의 w는 weight의 약자다.

weight 사전에 나온 뜻은 무게, 부담, 영향력 등이 있다.

입력 값 x를 전달할 때 비중 역할을 하는데 해당 입력값에 대한 중요도를 표시한다.

가중치를 이해하기 좀 어렵다면 다음 예를 보자.

각 100점 기준으로 실적, 근태, 교육참여를 기준으로 인사 평가를 한다면

실적점수 100점 중 70%, 근태점수 100점 중 20%, 교육참여점수 100점 중 10%의 중요도(비중) 결정.

위 값들을 실적점수 : x1, 근태점수 : x2, 교육참여점수 : x3로 입력값으로 정한다.

입력값에 가중치 w1 : 0.7, w2 : 0.2, w3 : 0.1을 곱해서 판단할 수 있다.

A사원 실적 80점, 근태 80점, 교육참여 100점

B사원 실적 70점, 근태 100점, 교육참여 100점

단순하게 합계 점수만 보면 A사원은 총점이 260점, B사원은 270점이다.

총점수만 보면 B사원이 10점 앞선다.

가중치를 사용하면,

A사원 80 * 0.7 + 80 * 0.2 + 100 * 0.1 = 82.0

B사원 70 * 0.7 + 100 * 0.2 + 100 * 0.1 = 79.0

A사원이 3점 높게 된다.

이것을 가중치라고 부른다.

 

임계값/한계값

입력값(x)과 가중치(w)에 의해 나온 값이 정해진 한계값을 넘게 되면 결괏값을 결정하게 된다.

한계값은 커트라인과 비슷한 의미다.

임계값

입력값과 가중치를 사용한 합계 값이 한계값보다 작거나 같으면 0 크면 1이 y값으로 된다.

한계값(커트라인)은 임계값 또는 세타기호( 𝞱)로 표시한다.

 

편향 b(bias)

편향

 

위 식에서 임계값을 넘기고 우측항에 0을 둔다.

이제 임계값은 0이 된다.

편향은 쉽게 말해 선호도 같은 의미다.

(입력값 * 가중치) 값이 있지만 임계값(여기서는 0) 기준으로 보면

선호도에 따라 결괏값이 달라진다.

예를 보자.

입력값 x : 0.3, 가중치 w : 1, x * w = 0.3 > 0, y = 1이 됨.

이 뉴런에서 선호도 b : -0.6으로 설정.

b + (x*w) = -0.6 + 0.3 = -0.3 <=0 , y = 0이 됨.

편향 값에 의해 결괏값이 달라짐을 알 수 있다.

원래 결과가 1이 나왔지만 선호도가 마이너스라서 0으로 바뀌게 된 것이다.

여기가 치킨 맛집(y=1)이지만 난 닭을 싫어해서 (y=0) 이런 의미다.

 

결괏값 y

y는 결괏값(0 또는 1)을 의미한다.

사실 퍼셉트론은 인간 뇌 뉴런을 수학적으로 표현한 알고리즘이다.

수학 개념이 필요하다는 의미다.

퍼셉트론은 위 예시처럼 0과 1을 사용한다.

임계값을 좌항으로 옮기고 우측항에 0이 남는다.

0보다 크거나(>0) 또는 0보다 작거나 같은(<=0) 조건으로 결괏값 0 또는 1을 정하게 된다.

맞냐 틀리냐의 의미다.

숫자 4가 맞으면 1 아니면 0으로 판명하는 것이다.

신호가 없다 (0) 있다 (1)를 의미하는 것이다.

이제 위 식이 무슨 의미인지 이해가 될 것이다.

안되면 처음부터 다시 천천히 읽어보면 도움이 된다.

 

마무리

사실 딥러닝과 퍼셉트론 기본 개념을 알았다고 당장 할 수 있는 건 없다.

수학으로 더하기, 빼기 등 사칙 연산의 기본을 배웠다고 할 수 있다.

그렇다고 모든 수학 문제를 바로 풀 수 있는 건 아니다.

용어를 이해하고 설명할 수 있다면 다음 단계로 진행하기 수월해진다.

꼼꼼히 읽고 꼭 이해하자.

이번 포스팅은 인공지능(AI) 개발자(프로그래머)가 되기 위해 알아야 하는 딥러닝과 퍼셉트론에 대해 설명해 보았다.

다음 포스팅은 퍼셉트론을 활용해서 논리 회로를 어떻게 표현하는지 설명한다.

기본 이론 설명 후 내용이나 용어를 더 쉽게 예를 들어 설명할 계획이다.

 

초보 인공지능 개발자를 위한 딥러닝과 퍼셉트론 기본 개념은 여기까지다.

다음 포스팅은 퍼셉트론을 활용해서 논리 회로를 어떻게 표현하는지 설명한다.

 

 

 

반응형
반응형

키워드, 딥러닝, AI, 인공지능. 개발자, 프로그래머

25년을 개발자(프로그래머)로 살아왔다.

비주얼베이직으로 시작했고 델파이와 파워빌더로 다양한 산업군의 프로젝트에 참여했다.

2005년쯤 시대에 맞게 자바(java)로 전향했고 요즘은 자바스크립트에 빠져있다.

지금 시대는 인공지능(AI)을 활용한 프로그램들이 넘쳐나고 있다.

chatGPT는 개발자의 일자리까지 위협한다는 뉴스도 봤다.

일전에 파이썬을 공부하고 포스팅했고 마침 인공지능의 시작이라 할 수 있는 딥러닝을 접하게 되었다.

내 인공지능 이야기는 초등학교에서 시작되었다.

 

초등시절 컴퓨터

나는 초등학교 5학년 친구 집에서 실물 컴퓨터를 처음 봤다.

테이프레코더가 컴퓨터 옆에 있었다.

Chris Whytehead, Chris's Acorns – CC-BY-SA-3.0, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

위 사진과 비슷한 테이프를 사용하는 저장장치였다.
[출처. Chris Whytehead, Chris's Acorns – CC-BY-SA-3.0, CC BY-SA 3.
0
<https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons]

지금 같은 인터넷 시대가 아니었기에 가정에서 초딩이 컴퓨터로 할 수 있는 것은 게임밖에 없었다.

엄마를 졸라서 컴퓨터 학원에 등록했다.

컴퓨터로 로봇이라도 만들 기세였다.

학원에 등록해서 BASIC을 배웠다.

강사샘이 알려준 대로 코딩을 했지만 오류도 많았고 독수리 타법으로 시간이 많이 걸렸다.

재미도 없고 지루했다.

for문, if문을 배웠는데 이걸로 뭘 만들 수 있을까? 라는 이해하기 어려운 상황이 되었다.

* 모양이 삼각형으로 나오게 출력하기....그래서 어쩌라고?

*
**
***
****

이걸로 어떻게 로봇을 만들지?

결국 한 달 다니고 그만두었다.

지금 생각해 보면 코딩 학원의 큰 문제점 중 하나가 이론만 가르치고 동기 부여는 없다는 것이다.

쉽게 확인하는 방법은 이론을 배워서 실습을 하고 난 뒤

그래서? 뭐 어쩌라고? 이걸로 뭐 하는 건데?

라는 생각이 드는 경우다.

 

컴맹 대학생 개발자로 첫 발

스타크래프트를 혼자 실행 못했던 컴맹 대학생이 나였다.

우연히 프로그램 사업을 하는 친구를 만났다.

팬티엄2에 64메가 램 그리고 6.4기가 하드디스면 최고 사양이었던 시절이었다.

html을 시작으로 홈페이지 개발자로 첫 발을 내디뎠다.

병아리 수준의 초초초짜 개발자였기에 C로 만든 cgi는 외계어로 보였다.

친구 사무실에 개발자들을 만났다.

VC++, 델파이 등으로 개발을 하는데 정말 멋져 보였다.

사진: Unsplash 의 Sigmund

나도 개발자(프로그래머)가 되겠다고 결심을 굳혔다.

그리고 일반선택으로 전산통계학과의 프로그래밍언어 강의를 신청했다.

수업을 듣는데 배열과 집합을 이용해서 프로그램을 하는 듯 보였다.

프로그래밍 언어는 Lisp이었다.

당시 트렌드도 아니고 내가 공부하는 언어와 너무 달랐다.

도대체 이런 이상한 프로그래밍 언어는 어디에 쓰는 거야?

찾아보니 인공지능에 활용한다고 한다. 헐~

 

인공지능(AI) 프로그래머로 첫 발

25년 동안 시대에 맞는 프로그램 기술을 배우고 현장에서 개발자로 살았다.

영화 속 인공지능인 터미네이터와 스카이넷을 보고 인공지능(AI) 개발자의 꿈은 유지되었다.

기회가 된다면 꼭 도전해보고 싶었다.

현실은 업무 프로그래머였지만...

어느 날 회사에서 도서 지원이 있다고 해서 인터넷 서점을 서칭 하다가 멋진 책을 발견했다.

사진: Unsplash 의 Growtika

딥러닝.

인공지능(AI)을 위한 기술이었다.

머신러닝, 딥러닝, 신경망

낯선 단어들이다.

하지만 인공지능(AI) 개발자라면 필수가 아닐까?

2019년 딥러닝 책을 시리즈로 구매했다.

앞에 몇 페이지를 보는데 파이썬(python)을 활용했다.

그래서 파이썬(python) 책도 구매했다.

우선 파이썬부터 시작했고 포스팅했다.

2020.09.28 - [Software/Python(파이썬)] - [HOW]파이썬(Python) 특징에 대해 알아봅니다. -왕초보 시작

 

[HOW]파이썬(Python) 특징에 대해 알아봅니다. -왕초보 시작

안녕하세요. 신기한 연구소입니다. 정말 오랜 시간 자바(JAVA) 개발자로 지내왔는데 새로운 공부가 하고 싶은 마음에 파이썬(Python)을 선택하게 되었네요. 마침 잠깐 쉬는 기간이라 딱 좋은 시기입

tiboy.tistory.com

 

2021년 이제는 인공지능(AI) 시대가 온 것 같다.

다양한 앱들이 나타나고 점점 확산되는 분위기였다.

파이썬도 익혔기에 책장에 묵혀 둔 딥러닝 책을 꺼냈다.

그리고 공부를 시작했다.

관심 분야라 재미있게 읽었다.

배열, 행렬 그리고 미분이 나온다.

딥러닝을 공부하는데 수학이 필요한 것이다.

다행히 대학 때 미적분을 배웠기에 어렵지 않게 읽었다.

프로젝트와 병행해서 공부를 했다.

그러던 어느 날 협력업체 직원과 대화를 했는데 인공지능(AI)에 대한 이야기가 나왔다.

요즘 딥러닝 공부 중이라 하니 개발자는 굳이 딥러닝 공부할 필요가 없다고 한다.

그 이유는 구글 등에서 나오는 API를 활용하면 되기 때문이란다.

굳이 수학도 나오는 어려운 딥러닝을 공부할 필요 없고 그것을 활용해서 만든 API만 잘 사용하면 된단다.

사진: Unsplash 의 Antoine Dautry

사실 틀린 말은 아니다.

사업하는 입장에서 사업적인 접근만 하면 되기 때문이다.

굳이 연구 개발하는 개발자 기준으로 어렵게 공부할 필요는 없을 수 있다.

 

제대로 다시 딥러닝 시작하기

나는 개발자다.

나는 프로그래머다.

기본부터 충실하게 익히고 이해해야 API도 잘 활용할 수 있다.

지금 내 책상 독서대엔 딥러닝 책이 펼쳐져 있다.

나처럼 인공지능(AI) 프로그래머가 되고 싶고 딥러닝을 시작한 개발자들이 있을 것이다.

머신러닝, 딥러닝, 신경망부터퍼셉트론, 가중치, 편향, 계단 함수, 시그모이드 함수, ReLU 함수 등 처음 보는 용어들이 많다.

공부만이 답이다.

사진: Unsplash 의 Jonathan Kemper

열심히 준비해서 학습을 해야 기회가 와도 잡을 수 있다.

이 포스팅을 시작으로 매일 스터디하고 정리해서 글을 쓸 계획이다.

혹시 딥러닝이나 인공지능 개발자가 되고 싶은데 용어나 수학의 어려움 때문에 고민 중이라면자주 방문하길 바란다.

누구나 이해할 수 있을 정도로 쉽게 풀어서 정리하는 것도 목표 중 하나이기 때문이다.

인공지능(AI) 전문 프로그래머가 되기 위해 이제 첫 발을 강하게 차 올려본다.

 

 

반응형