반응형

음식도 맛있고 양도 많은데 가격까지 저렴하다면 우리는 가성비가 좋다고 표현한다.

음식과 가격 둘 다 만족해야 가성비라는 표현을 쓴다.

이 중 하나라도 맘에 안들면 가성비가 좋다고 하지 않는다.

논리 회로 중 하나인 AND 게이트가 바로 이 역할을 한다.

AND 게이트는 딥러닝 퍼셉트론에서 어떻게 활용하는지 알아보자.

AND 게이트와 퍼셉트론

AND 게이트는 무엇인지 의미를 알아보자.

AND는 우리말로 "그리고", "~과/~와"로 해석된다.

가성비 이야기에서 둘 다 만족해야 한다고 했다.

AND가 이 역할을 한다.

가성비를 파이썬 프로그램으로 간단하게 구현해 보자.

1
2
3
4
5
6
7
8
food = "good"
price = "cheap" 
 
if (food=="good" and price=="cheap"):
        print ("effective")
else:
        print ("ineffective")
 
cs

food와 price 둘 다 만족해야 (true) effective가 출력된다.

파이썬 문법도 둘 다 만족하는 조건식에 "and"를 사용한다.

컴퓨터가 좋아하는 0과 1로 변경해서 다시 코드를 작성해 보자.

1
2
3
4
5
if (x==1 and y==1):
        print (1)
else:
        print (0)
 
cs

만약 x와 y가 1이면 출력값은 1이다.

둘 중 하나라도 1이 아니면 출력값은 0이 된다.

AND 게이트 진리표

AND 게이트 진리표를 표로 정리해 보자.

x1 x2 y
0 (false) 0  (false) 0  (false)
1 (true) 0  (false) 0  (false)
0  (false) 1  (true) 0  (false)
1  (true) 1  (true) 1  (true)

1:true, 0:false로 생각하면 된다.

x1과 x2 둘 다 1 (true)인 경우만 출력값 y가 1 (true)가 된다.

AND 게이트 논리 회로는 이렇게 구성되어 있다.

 

AND 게이트와 퍼셉트론의 활용

이제 퍼셉트론을 활용해서 계산을 해보자.

퍼셉트론에서 사용되는 가중치 w와 임계값 𝞱를 이용해서 AND 게이트를 계산한다.

퍼셉트론 계산식을 다시 보자.

퍼셉트론 포스팅에서 봤던 동작 원리 공식이다.

2024.11.19 - [인공지능(AI)/딥러닝(DeepLearning)] - [딥러닝]퍼셉트론(Perceptron)이란? 초보 인공지능(AI) 개발자를 위한 쉬운 설명, 퍼셉트론 뜻

 

[딥러닝]퍼셉트론(Perceptron)이란? 초보 인공지능(AI) 개발자를 위한 쉬운 설명, 퍼셉트론 뜻

인공지능(AI) 프로그래머가 되고 싶다.처음 보는 단어가 많다.하나씩 정리해 본다.인공지능(AI) 개발자의 필수 공부 딥러닝(DeepLearning) 그리고 퍼셉트론(Perceptron)인공지능(AI) 개발자가 되기 위해서

tiboy.tistory.com

위 식과 AND 게이트 진리표를 활용해서 출력값을 확인해 보자.

위 식을 보면 입력값 x에 가중치 w를 곱한 값들을 더해서 임계값( 𝞱 )보다 크면 1을 반환한다.

입력값 x는 AND 게이트의 진리표에 정의되어 있다.

가중치와 임계값을 정하자.

입력값 x는 x1, x2 두 개이므로 각 입력값에 대응할 가중치도 w1, w2 두 개로 정한다.

(w1, w2, 𝞱 ) 

w1 = 0.7, w2 = 0.3, 𝞱 = 0.9

(0.7, 0.3, 0.9)

임계값 (𝞱) 는 AND 게이트에 적합한 출력값을 만들기 위해서 가중치 중 최대값(w1=0.7)보다 크게 설정한다.

이제 AND 게이트 값을 활용해서 계산해보자.

(x1, x2) -> (0, 0)

0 * 0.7 + 0 * 0.3 = 0 <= 0.9 이므로 출력값 y = 0 이 된다.

(x1, x2) -> (1, 0)

1 * 0.7 + 0 * 0.3 = 0.7 <= 0.9 이므로 출력값 y = 0 이 된다.

(x1, x2) -> (0, 1)

0 * 0.7 + 1 * 0.3 = 0.3 <= 0.9 이므로 출력값 y = 0 이 된다.

(x1, x2) -> (1, 1)

1 * 0.7 + 1 * 0.3 = 1.0 > 0.9 이므로 출력값 y = 1 이 된다.

결과를 보면 (0.7, 0.3, 0.9)는 AND 게이트와 같은 출력값을 만드는 가중치와 임계값이 된다.

만약 다음과 같이 가중치와 임계값을 설정했다면 어떤 결과가 나올까?

(w1, w2,  𝞱 

w1 = 0.7, w2 = 0.3, 𝞱 = 0.5

(0.7, 0.3, 0.5)

(x1, x2) -> (0, 0)

0 * 0.7 + 0 * 0.3 = 0 <= 0.5 이므로 출력값 y = 0 이 된다.

(x1, x2) -> (1, 0)

1 * 0.7 + 0 * 0.3 = 0.7 > 0.5 이므로 출력값 y = 1 이 된다.

(x1, x2) -> (0, 1)

0 * 0.7 + 1 * 0.3 = 0.3 <= 0.5 이므로 출력값 y = 0 이 된다.

(x1, x2) -> (1, 1)

1 * 0.7 + 1 * 0.3 = 1.0 > 0.5 이므로 출력값 y = 1 이 된다.

두 번째  (x1, x2) -> (1, 0) 입력값에 대한 출력값이 0이 아닌 1이 나왔다.

AND 게이트의 출력값과 다른 결과가 나왔다.

AND 게이트가 성립하도록 임계값( 𝞱 )을 잘 설정하자.

AND 게이트와 퍼셉트론은 어떻게 활용하지?

식당을 방문한 고객들의 리뷰 정보를 활용해서 가성비 식당 판별을 해보자.

총점을 100점으로 정하고 맛과 가격의 비율을 정한다.

맛과 가격을 6:4 비율로 정하고 100점 기준 70점 이상이 나오면 가성비 식당으로 출력한다.

리뷰에서 맛과 가격 두 가지 입력값을 받는다.

맛있으면 "O" 아니면 "X", 적정가격 이하면  "O" 비싸면 "X"를 선택한다.

A는 맛은 O, 가격도 O를 선택했다.

B는 맛은 O, 가격은 X를 선택했다.

C는 맛은 X, 가격도 X를 선택했다.

이 입력값으로 사용자들의 가성비 평가를 해보자.

(0.6, 0.4, 0.7) 가중치 6:4 비율에 임계값이 100점 기준 70점이면 1 기준 0.7이다.

A : 1 * 0.6 + 1 * 0.4 = 1.0 > 0.7 결과는 1로 가성비 맛집으로 평가됨.

B : 1 * 0.6 + 0 * 0.4 = 0.6 <= 0.7 결과는 0으로 가성비 맛집 미달됨.

C : 0 * 0.6 + 0 * 0.4 = 0.0 <= 0.7 결과는 0으로 가성비 맛집 미달됨.

이렇게 입력값에 가중치(중요도)를 정하고 결과를 정하는 임계값을 기준점 정한 뒤 비교해서 출력값을 만든다.

이제 딥러닝에서 AND 게이트와 퍼셉트론을 활용하는 방법을 이해하게 되었다.

끝.

반응형
반응형

키워드, 딥러닝, 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) 전문 프로그래머가 되기 위해 이제 첫 발을 강하게 차 올려본다.

 

 

반응형