인공지능을 만든다는 것이 무슨 일인지, 가장 기초적인 구조만 봅니다.
어려운 말은 하나도 쓰지 않습니다.
학교에서 배운 함수를 기억하시죠. 넣으면 나옵니다.
1 ──▶ [ 함수 ] ──▶ 5
인공지능도 똑같이 생겼습니다. 넣는 것이 숫자가 아닐 뿐입니다.
「사랑해」 ──▶ [ 번역하는 상자 ] ──▶ 「I love you」 고양이 사진 ──▶ [ 알아보는 상자 ] ──▶ 「고양이입니다」
이 상자 하나를 만드는 것이 오늘 하는 일입니다.
「화씨는 섭씨 곱하기 1.8 더하기 32」라고 사람이 알려 주고, 컴퓨터는 계산만 했습니다.
예시만 보여 줍니다. 0도는 32도, 8도는 46도… 규칙은 알려 주지 않습니다. 기계가 찾아냅니다.
그래서 「학습」이라고 부릅니다. 규칙을 주는 대신, 예시를 주고 규칙을 찾게 하는 것입니다.
빈 두뇌를 하나 준비합니다. 아직 아무것도 모릅니다.
예시를 보여 줍니다. 두뇌가 조금씩 자기를 고칩니다.
무엇을 배웠는지 안을 들여다봅니다.
챗GPT를 만드는 것도 이 세 단계입니다. 크기만 다릅니다.
직선두뇌 = keras.Sequential([
keras.Input(shape=(1,)),
keras.layers.Dense(1),
])
대괄호 안에 위에서 아래로 층을 적습니다. 적은 순서대로 신호가 지나갑니다.
섭씨 온도 하나가 들어온다고 알려 줍니다.
이 칸이 하는 일은 곱하고 더하기가 전부입니다.
이 세 줄이 두뇌 하나입니다. 층을 쌓는 것이 두뇌를 만드는 일입니다.
입력 ───( 곱하기 w )───( 더하기 b )───▶ 출력
방금 만든 두뇌 안에는 숫자가 딱 두 개 들어 있습니다. 하나는 곱하는 숫자, 하나는 더하는 숫자입니다.
만들자마자는 아무 숫자나 들어 있습니다. 그래서 아무 말이나 합니다.
그게 전부입니다. 더 복잡한 두뇌는 이 숫자가 수천억 개일 뿐입니다.
직선두뇌.fit(섭씨, 화씨, epochs=500)
fit 이 「가르쳐라」입니다. 섭씨를 보여 주고 화씨가 정답이라고 알려 줍니다. 500번 반복해서 봅니다.
지금 아는 대로 화씨를 계산해 봅니다.
정답과 비교합니다.
더 커야 하는지 작아야 하는지 봅니다.
두 숫자를 아주 조금 움직입니다.
이 네 걸음을 500번 돕니다. 그게 학습입니다. 사람이 연습하는 것과 같습니다.
w, b = 직선두뇌.layers[0].get_weights()
| 곱하는 숫자 | 더하는 숫자 | |
|---|---|---|
| 가르치기 전 | 아무 값 | 0 |
| 가르친 뒤 | 1.7979 | 31.9525 |
| 실제 정답 | 1.8 | 32 |
공식을 알려 준 적이 없습니다.
숫자 일곱 줄만 보여 줬는데 스스로 1.8과 32를 찾아냈습니다.
이 순간이 오늘 실습의 핵심입니다. 기계가 규칙을 찾아내는 것을 눈으로 보는 자리입니다.
계산 칸 하나는 직선밖에 못 그립니다. 굽은 것은 못 그립니다.
아무리 오래 가르쳐도 굽힐 수가 없습니다.
층을 세 겹으로 쌓으면 굽은 모양도 그려냅니다.
깊은두뇌 = keras.Sequential([
keras.Input(shape=(1,)),
keras.layers.Dense(64, activation='relu'), ← 한 겹 더
keras.layers.Dense(64, activation='relu'), ← 또 한 겹
keras.layers.Dense(1),
])
층을 깊게 쌓은 것, 그것이 딥러닝입니다. 깊게(deep) 배운다(learning)는 말 그대로입니다.
activation='relu' 는 직선을 꺾을 수 있게 해 주는 장치입니다. 지금은 「층을 쌓을 때 같이 적는 것」 정도로만 아셔도 됩니다.
┌─────────────────────────────┐
│ ① 두뇌를 만든다 │ 층을 쌓는다
│ Sequential([ ... ]) │
├─────────────────────────────┤
│ ② 가르친다 │ 예시를 보여 준다
│ fit(문제, 정답) │
├─────────────────────────────┤
│ ③ 쓴다 · 열어본다 │ 답을 시키거나 안을 본다
│ predict / get_weights │
└─────────────────────────────┘
허깅페이스에 올라와 있는 수많은 모델들도 이 세 단계로 만들어진 것입니다. 누군가 층을 쌓고, 오래 가르치고, 그 결과를 올려놓은 것입니다.
남이 오래 가르쳐 둔 두뇌를 내려받아 쓰고, 내 자료로 조금 더 가르치고, 여러 개를 이어 붙여 나만의 것을 만듭니다.
오늘은 구글이 빌려주는 컴퓨터에서 만들어 봤습니다. 껐다 켜면 사라집니다.
남이 몇 달 걸려 가르쳐 둔 큰 두뇌를 그대로 내려받습니다.
내 자료를 두뇌에 붙여 나를 아는 AI로 만듭니다.
듣고 말하게 합니다.
사용료 0원. 빌리는 것이 아니라 소유합니다.
AI CITY BUILDERS · 나만의 인공지능 1강 교재 · 실습 코랩은 강의 페이지에서 열 수 있습니다