대학교 수업/AI 실무 특강 (방학특강)

1.1 딥러닝 개요 _ 인공지능 역사

kicdor 2024. 8. 30. 17:23
반응형

[학습 목표 ]

딥러닝 개념 이해, PyTorch 코딩 스타일, 기초적인 통계 개념, 시각화 기법

* 주요 용어 : 지도학습, 비지도학습, 강화학습, 딥러닝 문제 해결 프로세스, 독립변수, 종속변수

 


1.0 에이다의 통찰

1) 찰스 베비지 (Charles Babbage)

사진출처-나무위키(찰스 베비지)

- 1791년 12월 26일 ~ 1871년 10월 18일

- 영국의 수학자.

- 1837년,   계산하는 기계 설계 (해석 엔진, Analytical Engine)

+) 설계만하고 제작은 못함. 당시는 백열전구도 없던 시절이기 때문

 

 

2) 에이다 바이런 러브레이스 (Ada Byron Lovelace)

출처-나무위키(에이다러브레이스)

- 1815년 12월 10일 ~ 1852년 11월 27일

- 인류 최초 프로그래머

- 시인 Byron의 딸

- 해석 엔진에서 수행할 프로그램에 대한 논문 발표

(해석 엔진은 숫자 이외 것도 처리할 수 있을 것이다. 예를 들어 화음과 음조를 해석 엔진의 표기에 맞출 수 있다면 해석 엔진은 꽤 복잡한 곡을 작곡할 수도 있다.) 

 

 

3) 현재 인공지능

(1) 알파고

: 알파고 vs 이세돌 바둑대국

 

(2) 자율주행자동차

: 테슬라의 자율주행 자동차, 한국의 자율주행 야간버스 운행

 

(3) 작곡하는 마젠타 프로젝트

 

(4) ChatGPT  (Chat Generative Pre-trained Transformer).

+) pre-trained

: train을 통해 최적화된 가중치를 제공

+) Transformer 

: Google AI 논문 - "Attention is all you need." 기술을 개발 / Open AI이 실제로 돈 벎. (그래서 이제 Google 논문 발표 감소)

 


1.1 지능이란?

1) 긴 지능 스펙트럼 

: 지능은 상대적인 개념이다. 

 

+) 예시

:  "돌맹이 -> 바이메탈-> 꼬마선충 -> 개미 -> 범인 -> 천재"

 

- 돌맹이보다는 바이메탈의 지능이 더 높다.

(돌맹이는 아무 기능을 할 수 없는 반면에 바이메탈은 온도를 조절하는 기능을 할 수 있다.) (bi metal : 다리미 온도조절)

 

- 바이메탈보다는 꼬마선충의 지능이 더 높다.

(꼬마선풍은 감각이 있고, 빛에 반응하고, 영양분을 흡수함)  (특히 감각이 지능과 밀접한 관련이 있음)

 

- 꼬마선충보다는 개미의 지능이 더 높다.

(개미는 협동을 할 수 있고, 의사소통을하고, 사회를 구성한다) .......

 

 

2) "알파고"는 위 예시에서 어디에 위치하는가?

: 천재보다 더 지능적인가? 협력을 못하니 개미보다 못하는가? 물리법칙을 이용할 수 있는가? .....

>>  알파고는 "바둑"이라는 기능에 특화되어있다. (특수한 지능 / 일반적인 지능)


1.2 인공지능을 바라보는 관점

1) 다양한 관점

- 긍정, 부정, 기대, 우려라는 관점이 있다.  

(자동화를 할 수 있다는 긍정적인 기대, 직업을 잃을 수 있다는 부정적인 우려 등이 있다)

>> 객관성이 필요로 된다.

 

 

2) 인공지능의 정의

- Artificial Intelligence : Foundations of Computational Agents(Poole 저, 2017)

: "인공지능은  지능적으로 행동하는 계산 에이전트를 만들고 분석하는 학문 분야"라고 주장

 

- ★ 강한 인공지능 (strong artificial intelligence) 

: 다양한 지능의 복합체.

(국영수를 전부 할 수 있는 인공지능. 이해, 추론, 사고, 학습, 적용, 논증, 판단 등을 전부 할 수 있는 지능) (chat GPT 등)

 

- ★ 약한 인공지능 (weak artificial intelligence)

: 한가지 지능에 특화된 인공지능. (알파고, 인공지능 스피커, 언어 번역기, 영상 인식기 등)

 

 

3) 충동하는 관점

(1) 앨런 튜링의 튜링 테스트

: 앨런의 튜링 테스트는 "can machine think?"를 판별한다. 즉, 강한 인공지능을 판별하는 imitation game이다. (튜링 테스트를 통과하는 기계는 생각한다고 간주해도 된다.) 

+) 튜링 테스트 방법

: AI컴퓨터 A와 사람 B가 있다. 사람 C가 A한테도 질문을 해서 대답을 얻고, B한테도 질문을 해서 대답을 얻는다. 사람 C가 A와 B 중 누가 사람인지 구분을 하지 못하면 튜링테스트를 통과한 것이다   

+) 튜링 머신 : 컴퓨터의 기본적인 단위가 되었다. 

+) 튜링 테스트를 통과한 인공지능 시스템 (요즘에는 웬만하면 튜링테스트를 통과함)

: 2022년 6월,   Google LaMDA AI가 최초로 통과

  2022년 12월,   OpenAI의 ChatGPT가 두 번째로 통과

 

(2) 철한자 존 설(John Searle)의 중국인의 방

: 튜링테스트를 통과한 인공지능이더라도 인공지능이 생각을 하고 답을 한 것인지, 형식적인 답변을 한 것인지 구분이 불가능함 >> 튜링 테스트를 통과해도 "튜링 테스트를 통과한 AI는 생각을 할 수 있다"라고 말하면 안 된다고 주장.

+) 예시

: 컴퓨터 프로그램 A, 사람B, 사람C는 중국어를 모름. 컴퓨터 프로그램 A에게 중국어로 질문을 하면, 그게 무슨 말인지도 모르면서 반사적으로 형식적인 답변만 줌. 사람 B도 아무 답변이나 줌. 사람C도 A와 B가 무슨 말을 하는지 모름. 그래서 C는 A와 B 중에 누가 사람인지 구분 못함. (또는 사람들이 해당 주제에 대해 대화할 때 많이 쓰는 말들로 구성해서 그럴듯하게 대답함) >> 튜링테스트를 통과 

 


1.3 인공지능의 역사

0) 인공지능 기반

- 1843,   에이다가 ...해석 엔진(계산기)은 꽤 복잡한 곡을 작곡(지능)할 수도 있다.라는 논문 발표. 

 

- 1946,   에니악 등장. (진공관을 사용. 최초의 범용 디지털 컴퓨터)

+) 2차세계대전이 막 끝남. 그전에도 비슷한 제품은 있었지만 전쟁으로 인해 컴퓨터가 발전한 후 만들어짐.

 

- 1950,   튜링 테스트 제안  (인공지능 여부를 판별하는 테스트)

 

- 1956,   다트머스 컨퍼런스 개최, '인공지능' 용어 탄생. 

  +) 다트머스 컨퍼런스

: 최초의 인공지능 학술대회

 

- 1958,   로젠블랫이 퍼셉트론 제안, 인공지능 언어 Lisp 탄생. Type theory 나옴.

+) Type theory

: 컴퓨터가 등장하게 된 수학적인 배경. 조지불 등 여러 수학자가 정리해서 나온 이론임. Type theory의 요점은 "수학은 불완전하다"임. "우리는 불완전한 수학으로 무엇을 할 수 있을까?" 고민한 결과 튜링머신이 탄생하게 됨. 그리고 이 튜링머신을 실체화 한 것이 컴퓨터임.  (조지 불 : boolean type이 이 수학자 이름에서 따옴.)

 

- 1959,   사무엘이 (기계 학습(ML)을 이용한) 체커 게임 프로그램 개발. (오셀로, 틱텍톡 등)

 

- 1965,    로트피 자데가 퍼지 이론 발표.

+) 로트피 자데의 퍼지이론(Fuzzy theory)

: "내 아내가 얼마나 아름다운지 수학적으로 증명할 수 있을까?"라는 생각에서 시작. 컴퓨터는 0과 1로 밖에 표현 못함. 그래서 표현 방식을 이진수가 아닌 "0.0~1.0"으로 표현함으로써 시스템을 정교하게 구성. (제어시스템 이론 기반)

 

- 1966,  엘리자 공개 (세계 최초의 챗봇)

 

- 1968,   A* 발표. (공간 탐색 알고리즘)

+) A* 알고리즘은 요즘에도 "게임"에서 많이 사용됨. NPC(non player character)가 장애물을 잘 피해서 이동할 수 있게 함.)

 

- 1969,   민스키가 Perceptrons에서 퍼셉트론의 과대포장 지적, 신경망 퇴조 시작, 1회 IJCA 학술대회 계최

+) 과대포장

: 퍼셉트론이 해결하지 못하는 것. XOR를 퍼셉트론이 표현을 못한다. 퍼셉트론을 사용할 수 없다.

 

- 1972,   인공지능 언어 Prolog 탄생, 스탠퍼드 대학교에서 마이신 전문가 시스템 개발 시작.

+) 마이신 전문가 시스템

: 질문을 하면 답변을 주는 시스템

 

- 1973,   라이트힐 보고서를 계기로 인공지능 내리막길, 1차 인공지능 겨울 시작 

+) 라이트힐 보고서

: "실제로 사용해보니 별로 쓸모가 없더라" >> 인공지능에 대한 예산 대폭 삭감

 

- 1974,   웨어보스가 오류 역전파 알고리즘으로 논문 발표

 +) ★오류 역전파 : error back propagation 알고리즘. 딥뉴럴 네트워크를 움직이는 데 꼭 필요함. 요즘에도 사용됨.

 

- 1979,   학술지 IEEE Transactions on Pattern Analysis and Machine Intelligence 발간

 +) IEEE

: 미국전기학회. 상당히 좋은 저널. 논문집. (PAMI. 팜)

 

- 1980,   존 설이 중국인의 방 논문 발표, 1회 ICML 학술대회 개최, 후쿠시마가 네오코그니트론 제안

+) 네오코그니트론 (New cognization) 

: 퍼셉트론보다 조금 더 개선되어있는 시스템. 새로운 인공 신경망의 한 종류. 

 

- 1984,   영화 <터미네이터> 개봉 

+) 터미네이터의 skynet 회사

: 영화에서 위협이 되는 존재. 요즘은 Google이 skynet처럼 되고 있다는 여론이 있음.

 

- ★ 1986,  Parallel Distributed Processing 출간. 다층 퍼셉트론으로 신경망 부활, 학술지Machine Learning 발간.

+) 다층 퍼셉트론

: 퍼셉트론을 여러 층을 사용하면 XOR을 표현할 수 있다. 퍼셉트론의 과대포장 해결)

 

- 1987,   Lisp 머신의 시장 붕괴로 2차 인공지능 겨울 시작, 1회 NIPS 학술대회 개최.

+) Lisp 머신

: 최초의 인공지능 언어 Lisp으로 만든 인공지능 머신이 제대로 작동하지 않음.

 

- 1987,   UCI 리퍼지토리가 데이터 공개 서비스 시작

 

- 1989, 학술지 Neural Computation 발간

 

- 1991,   파이썬 언어 탄생

 

- 1993,   R언어 탄생

 +) R언어

: 통계와 관련된 언어. 통계도 인공지능과 관련 있음. (인공지능은 어떻게 보면 응용통계학)

 

- 1997,   딥블루가 세계 체스 챔피언을 이김, LSTM 발표

+) 딥블루

: IBM이라는 회사가 만듦. 딥블루보다 현재의 스마트폰이 훨씬 성능이 좋음)

+) LSTM

: Long-short-term-memory. 순환 신경망(RNN)의 일종. RNN은 처음 배운 것을 잘 잊는 특성이 있음.

이를 해소하기 위해 LSTM 개발. 장기 메모리와 단기 메모리를 구분해서 따로 관리하는 Neural network.

 

- 1998,   얀 르쿤이 컨볼루션 신경망 (CNN, Convolution Neural Network)의 실용적인 학습 알고리즘을 제안, 매시가 '빅데이터'라는 용어 사용

+) 빅데이터(당시의 의미)

: 정형화 되지 않은 큰 데이터. (게시판 글, 채팅 등)

+) 정형화 된 데이터

: 표 (table) 등

 

- 1999,   엔비디아에서 GPU 공개, 소나에서 애완 로봇 AIBO 시판 시작

 

- 2000,   컴퓨터 비전 패키지 OpenCV 최초 공개, 학술지 [Journal of Machine Leaning Research] 발간

+) OpenCV

: 인텔이 주도해서 만듦. 2D 이미지의 비전 처리, 시각인공지능에서 중요한 역할을 하는 라이브러리

 

- 2001,   영화 <AI> 개봉

+) 영화 <AI>

: 감정을 지닌 인조인간이 등장하는 영화

 

- 2004,   1회 그랜드 챌린지 <고속도로 자율주행> 대회 개최

 

- ★2007,   엔비디아에서 CUDA 공개, 어번 챌린지(도심 자율주행), 사이킷 런 최초 공개

+) CUDA

: GPU 프로그래밍 라이브러리, 프래임 워크.

 +) GPU는 조그만 CPU 수천 개가 병렬처리함. 훨씬 빨라짐. 옛날에는 CPU하나가 하나의 픽셀을 담당하기 때문.

+) 사이킷 런 (Scikit-learn)

: 파이썬의 기계 학습 라이브러리

 

- 2009,   씨아노(Theano) 등장

+) 씨아노 (Theano)

: 딥러닝 패키지 라이브러리. 현재에는 공식적으로 서비스 중단됨. 파이토치와 텐서프로가 이 기능들을 많이 가져감. 

 

- 2010,   ImageNet 탄생, 1회 ILSVRC 대회 개최, 키넥트 시판 시작, 앱인벤터 언어 발표

+) ImageNet

: 대규모 자연 영상 데이터베이스.

+) ILSVRC

: 누가누가 ImageNet을 이용한 이미지 인식을 잘하나 대회

+) 키넥트 (Kinect)

: 마이크로소프트에서 만든 동작 인식 카메라.

RGB카메라 (각 픽셀의 RGB 컬러값 제공), 적외선 카메라 (Deepth 카메라) (깊이, 거리 측정)로 구성.

자동으로 사람 동작을 인식하도록 하는 소프트웨어를, 인공지능 기술과 슈퍼컴을 이용해 어마어마하게 학습시켜서 사용. 

+) 앱인벤터 언어

: MIT에서 개발한 스크레치 (블록코딩)랑 비슷한 언어. 안드로이드용 언어를 개발할 수 있음.

(음성 합성, 음성 인식, 언어 번역 컴포넌트 제공)

 

- 2011,   IBM 왓슨이 제퍼디(퀴즈쇼) 우승자 꺾음, 애플에서 Siri 서비스 시작

+) IBM 왓슨

: 인공지능 시스템. 현재 증상을 판단하는 의료용/의료보조용으로 사용.

 +) Siri

: 인공지능 비서 앱

 

- 2012,   딥러닝으로 MNIST에 대해 0.23% 오류율 달성, AlexNet 발표, 자율주행차가 시각장애인을 태우고 시범 운행 세계 최초로 성공

+) MNIST

: 필기 숫자 데이터셋/데이터베이스. 손으로 쓴 숫자를 인식하는 용도

+) AlexNet

: CNN의 일종. 제 3회 ILSVRC에서 우승함. >> CNN의 가능성을 보여줌.

>> 이미지 인식에 CNN류의 네트워크를 사용하게 되는 계기. 요즘에도 CNN 사용.

 

- 2013,   1회 ICLR 학술대회 개최

 

- 2014,   MIT에서 카페(Caffe) 공개

+) 카페 (Caffe)

: 논문을 쓰기 위한 패키지. C++을 기반으로 하는 라이브러리

 

- 2015,   텐서플로 라이브러리 공개, OpenAI 창립, 클라우스 슈밥이 4차 산업혁명을 언급

+) 텐서플로 (TensorFlow)

: 구글의 딥러닝 패키지. 파이썬으로 프로그래밍하기 시작한 계기

 

- 2016,   파이토치, 케라스 라이브러리 공개, 알파고와 이세돌 바둑 대국, 벤지오 교수의 Deep Learning 출간.

+) 파이토치 (PyTorch)

: 페이스북의 딥러닝 패키지. 파이썬 기반

+) 케라스 (Keras)

: 인터페이스가 잘 되어있음. >> 바깥은 케라스로, 내부는 TensorFlow가 돌아가는 식으로 많이들 구성함

 

- 2017,   알파고 제로 등장, 구글에서 티쳐블 머신 공개

+) 알파고 제로

: 알파고를 개선한 인공지능. 알파고를 100:0으로 이김

+) 티쳐블 머신 (Teachable machine)

: 가르칠 수 있는 머신. (뒤에 나옴)

 

- 2018,   '에드몽 벨라미'가 경매에 약 5억 원에 팔림

+) '에드몽 벨라미'

: 인공지능이 그린 초상화

 

- 2019,    알파스타가 스타크래프트에서 그랜드마스터 수준 달성

 

- 2020,   OpenAI 재단이 GPT-3 발표, 제약회사 엑센시아가 인공지능이 개발한 후보 신약물질의 1상 시험 시작.

+) GPT-3

: 3세대 언어 모델

 

 

1) 퍼셉트론과 신경망

(1) 퍼셉트론(perceptron)

: 최초의 인공 신경망. 사람의 신경세포(=뉴런)의 구조를 모방한 컴퓨팅 시스템.

(딥러닝에서 사용)

 

(2) 일반적인 신경세포와 퍼셉트론 

사진출처-지식백과(신경망)

- 뉴런의 가지돌기  = 퍼셉트론의 input         (정보를 받음)    (x1 ~ xn)

- 뉴런의 축삭         = 퍼셉트론의 이동경로   (정보 이동)

- 뉴런의 축삭말단  = 퍼셉트론의  output     (정보를 전달)     (y1)

- 뉴런의 시냅스      = 퍼셉트론의 synapse   (신경세포를 이어주고 신호를 주고받는 부위)(까먹는다 = 시냅스가 끊어졌다) 

 

+) 같은 자극을 여러 번 주면 시냅스와 축삭말단이 붙고, 점점 더 견고해짐.

+) 더하기 : 사람 뉴런에서는 세포핵에서 진행됨.

 

 

2) 인공지능 언어

- 인공지능 프로그래밍 언어

: LISP, proloag.... 등이 있었지만 대부분 실패함. 

- 1958,   인공지능 언어 Lisp 탄생.

- 1972,   인공지능 언어 Prolog 탄생.

- 1991,   파이썬 언어 탄생

- 1993,    R언어 탄생

+) R언어

: 통계와 관련된 언어. 통계도 인공지능과 관련 있음. 인공지능은 어떻게 보면 응용통계학) 

- 2010,   앱인벤터 언어

+) 앱인벤터 언어

: MIT에서 개발한 스크레치랑 비슷한 언어. 안드로이드용 언어를 개발할 수 있음.

(음성 합성, 음성 인식, 언어 번역 컴포넌트 제공)

 

3) 두번의 인공지능 겨울

- 1973,   라이트힐 보고서를 계기로 인공지능 내리막길, 1차 인공지능 겨울 시작 

+) 라이트힐 보고서

: "실제로 사용해보니 별로 쓸모가 없더라" >> 인공지능에 대한 예산 대폭 삭감

- 1987,   Lisp 머신의 시장 붕괴로 2차 인공지능 겨울 시작

+) Lisp 머신

: 최초의 인공지능 언어 Lisp으로 만든 인공지능 머신이 제대로 작동하지 않음.

 

4) 인공지능 게임 프로그램

- 1959,   체커 게임 프로그램 개발. (오셀로, 틱텍톡 등)

- 1997,   딥블루가 세계 체스 챔피언을 이김

+) 딥블루

: IBM이라는 회사가 만듦. 딥블루보다 현재의 스마트폰이 훨씬 성능이 좋음

+) LSTM

: Long-short-term-memory. 순환 신경망(RNN)의 일종. RNN은 처음 배운 것을 잘 잊는 특성이 있음.

이를 해소하기 위해 LSTM 개발. 장기 메모리와 단기 메모리를 구분해서 따로 관리하는 Neural network.

- 2011,   IBM 왓슨이 제퍼디(퀴즈쇼) 우승자 꺾음

+) IBM 왓슨

:  인공지능 시스템. 현재 증상을 판단하는 의료용/의료보조용으로 사용.

+) 시리 (Siri)

: 인공지능 비서 앱

- 2016,   알파고와 이세돌의 바둑대국

- 2019,    알파스타가 스타크래프트에서 그랜드마스터 수준 달성

 

5) 자율주행차의 발전

- 2004,   1회 그랜드 챌린지 <고속도로 자율주행> 대회 개최

- 2007,   어번 챌린지(도심 자율주행)

- 2012,   자율주행차가 시각장애인을 태우고 시범 운행 세계 최초로 성공

반응형