오늘은 수업 끝나고, 책의 내용을 요약하면서 천천히 읽어보았습니다.

마이클 네그네빗스키 저, 김용혁 역, 『인공지능 개론』, 한빛아카데미, 2013, p. 26 ~ p. 43

암흑기 : AI 탄생 (1943~1956년)

최초 연구자는 워렌 맥클록, 컬럼비아 대학교에서 중심 신경 시스템에 관한 연구 처음으로 시행(뇌의 뉴런 모델)

두번째 워렌 맥클록의 제자 월터 피츠, 인공 신경망 모델을 제안함(Aritificial neural networks)

이 신경망 모델은 튜링 머신과 사실상 같으며, 계산이 가능한 함수면 뉴런이 연결된 모든 망에서 계산할 수 있음을 증명하여 ANN의 초석을 마련함

이후 존 폰노이만, 클라우드 새넌, 존 맥카시, 마빈 민스키 있음

 

AI의 융성 : 큰 기대의 시대(1956~1960년대 후반)

존 맥카시 : 'AI'라는 용어를 처음으로 만듦. LISP 만듦, '전문가 의견 청구자'라는 프로그램 제안

프랭크 로젠블랫 : 퍼셉트론(perceptron) 수렴 이론 증명 (학습 알고리즘이 퍼셉트론의 연결 강도를 조정하여 선형으로 분류할 수 있는 데이터들은 이분적으로 분류 가능함)

앨런 뉴웰과 허버트 사이먼 : 인간의 문제해결 방식을 모방하는 범용프로그램 개발, GPS(General Problem Solver)를 데이터와 문제 해결 기법을 구분하는 첫 시도

※ GPS 예시 : 2차원 평면에서 어떤 물체의 시작점이 (x1, y1), 목표가 (a, b) 일 때, 상하좌우로만 이동할 수 있다면 어떻게 이동할 것인가?

하지만, GPS는 현실 세계 문제를 푸는 데 필요한 시간과 메모리 양이 부족하여 진행 중단함. 이후에 컴퓨터 성능이 향상되며 응용되기 시작함

 

이행되지 않은 약속 : 현실의 직면 (1960년대 후반 ~ 1970년대 초반)

NP-완전 문제의 등장. 어떤 문제의 해를 다항식 시간(not 2^n) 안에 추측하고 검증할 수 있을 때 문제를 NP라고 함. 비결정적은 그 해를 추측하는데 특정한 알고리즘이 없다는 것(일일이 가능한지 대조해야하는 상황)

비결정적 문제 군에서 가장 어려운 문제가 NP-완전 문제이다. 현재에도 더 커진 메모리와 계산 능력이 좋은 CPU를 가지고 와도 못푸는 문제들이다.

 

또한, AI가 풀려고 하는 문제들이 너무 많고 다양했으나, 당시엔 너무 어려운 과정이었고, 모든 정부 지원 프로젝트가 중단된다.

 

전문가 시스템의 기술 : 성공의 열쇠(1970년대 초반 ~ 1980년대 중반)

레더버그는 자신의 기술과 경험, 의견을 이용하여 질량 분광계에서 제공한 질량 스펙트럼 데이터에서 샘플의 성분이 무엇인지 밝혀내는 프로그램을 만들었다. 이는 자신의 기술과 경험, 의견을 이용하였다. 이런 프로그램을 전문가 시스템이라고 함. 자신만의 경험과 추측에 기반을 두어 추론하는 방법을 휴리스틱(hueristic)이라 한다.

이렇게 발전된 전문가 시스템들이 DENDRAL(화학 제품 분석), MYCIN(전염성 혈액 질환 진단), PROSPECTOR(광물 탐사) 프로그램들로 상업적 성공을 거두면서, LISP, PROLOG, OPS 같은 AI 언어들이 개발되기 시작함.

하지만, 전문가 시스템도 한계는 있었다. 매우 한정된 전문 기술 분야에서만 적용 가능했고, 제약 조건이 추가될 경우 신뢰성이 떨어졌다. 또한, 결과를 검증하고 유효성을 입증하기 어려웠고, 자신의 경험을 토대로 배울 수 있는 능력도 없었으며, 전문가들의 휴리스틱에 의존하고 있었으므로, 개발 속도도 느렸다.

 

기계가 학습하는 법 : 신경망의 재탄생(1980년대 중반~)

1980년대 들어서 컴퓨터 기술이 발전하면서, 기존 단층 퍼셉트론의 계산 한계를 뛰어 넘어, 다층 퍼셉트론을 훈련할 수 있게 되었다. 다양한 인공 신경망 모델이 발달하면서, 신경망 학습에 대한 연구가 증가하였다.

 

진화 연산 : 탐색하면서 배우기(1970년대 초반~)

자연에선 생존에 적합한 종들은 번식할 확률이 더 높아 그들의 유전적 형질을 다음 세대에 전달한다. 추론, 기억 능력의 합산인 지능은 자연계의 진화 결과다. 이런 모델의 기반으로, 진화 연산을 통해 해 집단 모의, 성능 평가, 새로운 해 집단 생성 과정을 반복한다. 존 홀랜드가 처음으로 유전 알고리즘의 도입했고, 레켄베르그와 쉐베펠은 돌연변이가 발생하는 것처럼 매개변수에 임의의 변화를 주는 방법을 제안하였다. 실제로, 진화 전략 접근법은 공학자의 직관을 대신하였고, 많은 분야의 문제를 해결할 수 있었다.

 

지식 공학의 새로운 시대 : 단어로 계산하기(1980년대 후반~)

신경망 기술은 이전 시스템보다 실세계와 자연스럽게 상호 작용을 한다. 배우고, 문제 환경의 변화에 적응하고, 규칙이 알려지지 않은 상황에서 패턴을 찾고, 분명하지 않거나 불완전한 정보를 다룬다. 하지만, 신경망은 설명 능력이 부족하고, 블랙박스 상태로 내부 동작 과정이 불투명하다. 훈련의 시간은 너무 오래 걸리고, 빈번한 재훈련은 심각한 문제를 유발한다.

 

이때 모호하고, 부정확하며 불확실한 지식과 데이터를 다루는 중요한 기술 중 하나는 퍼지 논리(fuzzy logic)이다. 고전적인 전문가 시스템에서 부정확함을 다루는 대부분의 방법은 확률 개념에 기반을 둔다. 전문가들은 보통 확률 값으로 생각하지 않고, '종종', '일반적으로', '가끔', '자주', '드물게' 와 같은 용어로 생각한다. 퍼지 논리는 단어의 의미를 얻고 추론과 결정을 내리기 위해 퍼지 값을 사용하고, 전통적인 전문가 시스템의 계산 병목 현상을 극복하였다.

 

퍼지 집합론의 도입으로 인해, 향상된 계산 능력, 향상된 인지 모델링, 여러 전문가 의견을 표현하는 능력을 얻게 되었다. 아직 여전히 전문가에게 얻은 규칙에 의존하고 있어 똑똑할 수도 우둔할 수도 있어 모든 규칙을 검사하고 조율하는 과정이 필요하다. 그리하여 최근엔 퍼지 규칙의 수치 데이터를 찾기 위해 신경망 기술을 기반으로 한 여러 방법을 도입하고 있으며, 광범위한 분야에서 전문가 시스템, 신경 및 퍼지 시스템 분야에서 이용되고 있다.

 

전문가 시스템과 ANN의 통합, 퍼지 논리와 ANN의 통합이 현재 인공지능의 큰 스트림이라 할 수 있다.

 

감사합니다.

 

 

 

인기 만화 「원피스」의 배경으로 "위대한 항로"가 등장한다.

 

 위대한 항로 끝에는 엄청난 보물인 '원피스'가 존재하며, 이를 가진 자는 '이 세상 전부'를 가졌다고 한다.

그러나 이 바다는 무시무시한 괴물과 상상하지 못할 기상현상들이 발생한다. 잘못된 항로로 들어설 경우 바람이 한 점도 불지 않아 갇히거나, 소용돌이 해류로 끌려들어가 수장된다. 망망대해, 위험천만한 위대한 항로에서 길을 잃어버린다면, 끔찍할 것이다.

 

작중 등장인물들은 어떻게 항해를 유지할 수 있었을까?

 

작중에는 기록지침이라는 손목시계형 나침반이 있다. 이 나침반은 섬에 흐르는 자기장을 저장해서, 다음 섬을 가리킨다. 가리킨 방향으로 진행하다보면, 새로운 모험이 기다리고 있다.

 

현생으로 돌아와, 우리도 각자의 소망. 원하는 것들이 있을 것이다.

 

만화처럼 반드시 다음 섬을 가리키는 나침반은 없지만, 그래도 그 업계의 능력자들이 조언한 트랙이 있다면? 그 로드맵을 따라가는 것도 괜찮지 않을까?

 

 

그러나, 소프트웨어 개발자들 사이에서 "바퀴를 재발명하지마라(Don't reinvent the wheel."라는 격언이 있다. 유래를 찾아보니 19세기부터 산업계에 쓰여왔던 말이고, 이를 UNIX 개발자, 브라이언 커니건이 1983년 작성한 "C언어"책에 수록된 문구를 발췌한 것이라 한다. 개발자들이 자기가 좋아하는 기술개발을 하지 못하고, 이미 존재하는 것들을 다시 개발하기 위해 많은 시간을 쏟는 것에 대해 위와 같이 조언하였다.

 

우리의 수업과정은 인공지능을 개발하려고 하는 것이 아니다. 그러므로 하단에 소개하는 일을 반드시 따라야할 필요는 없다. 혹시나.. 자기가 길을 잃은 것 같거나 공부를 추가적으로 더 하고 싶다면, 참고하면 좋을 정보 및 키워딩용으로 가져왔다.

 

 

해당 웹사이트는 독일의 AMAI 라는 인공지능 소프트웨어 제작 회사에서 제안한 AI Software Developer Roadmap이다. 링크드인(LinkedIn)에서 조회할 수 있는 직원들의 약력을 보면.. 성능 확실할 것 같다.

 

Link : https://i.am.ai/roadmap/

 

 

 

우선 기초를 닦고, Data Scientist  Data Engineer를 선택한다.

Data Scientist Machine Learning, Deep Learning으로 발전할 수 있고, Data Engineer Big Data Engineer로 발전할 수 있다고 한다.

 

 

 

 

# 기초

<Basics>

[다중 선형대수학]

[데이터베이스 기초] for 관계형 vs 비관계형 DB, SQL + Joins, NoSQL

[정형 데이터] (like 표, 반댓말로는 비정형 데이터 like 소리)

[자료 구조 중 시리즈와 데이터 프레임]

[추출, 변형, 적재]

[보고, 비즈니스 인텔리전스, 분석] * BI: 조직에서 사람과 기술의 힘을 사용하여 전략적 및 일상적 의사 결정 프로세스에 사용된 데이터를 수집하고 분석하는 프로세스

[자료형식] for JSON, XML, CSV

[정규식]

 

<Python Programming>

[파이썬 기초] for 표현, 변수, 자료구조, 함수, 패키지 설치, 코드 스타일(PEP8)

[주요 라이브러리] for Numpy, Pandas

[가상환경]

[주피터 노트북]

 

<Data Source>

[데이터 마이닝]

[웹 스크래핑]

[쩌는 공공데이터]

[카글] * Kaggle : 각종 기관에서 문제 풀이를 위해 데이터 셋을 제공하면, 서비스 이용자들이 서로 머신러닝을 경쟁하여 문제의 답을 도출하는 플랫폼

 

<실험 데이터 분석/데이터 통합>

[주성분 분석, PCA] * PCA : 원 데이터의 분포를 최대로 보존하면서 고차원 공간의 데이터들을 저차원 공간으로 변환하는 차원 축소 기법

[차원 축소,데이터 정제]

[정규화]

[비편향 추정량] * Unbiased Estimator : 이건 아직 무슨 말인지 전혀 모르겠다..

[희귀값 구간화] * Binning sparse value : 무슨 말인지 아직 이해 불가.

[특징 추출]

[노이즈제거]

[샘플링]

 

# Data Scientist

<통계학>

[가능성 이론]

[연속 분포]

[이산 분포]

[요약 통계]

[중요 법]

[추정]

[가설 검증]

[신뢰 구간]

[몬테카를로 방법] * 무작위 추출된 난수를 이용하여 함수의 값을 계산하는 통계법

 

<시각화>

[차트 선택하기] * 유명한 그림인 것 같다. 이런 데이터는 이렇게 표현해 느낌.

[파이썬] for Matplotlib, plotnine, Bokeh, seaborn, ipyvolume

[웹] for Vega-Lite, D3.js

[대시보드] for Dash

[BI] for Tableau, PowerBI

 

#머신러닝

<일반>

[개념, 입력, 속성]

[비용함수, 경사 하강 알고리즘]

* 비용함수 : 데이터 셋과 어떤 가설 함수와의 오차를 계산하는 함수

* 경사 하강 알고리즘 : 비용함수를 최소화하는 세타를 찾기 위한 알고리즘으로 기울기에 따라 세타를 반복적으로 갱신을 통해 최종 minimum에 도달하는 것

[과학습/부족학습]

[테스트 데이터의 훈련, 검증]

[정밀도 vs 재현율]

[편향-분산]

[향상도] * 연관 규칙, 빵을 사면 버터도 그만큼 많이 사는 사람이 많다. 그런 값

 

 

...

 

오늘은 여기까지 정리해보고 다음에 마저 정리하겠다.

 

느낀점은.. 통계 공부를 잘 닦아놓으면, 데이터 셋에서 구분하고 의미를 찾는데 도움이 많이 될 것 같다고 느꼈다. 기존 생각하던 방향과 다르게 많이 통계랑 가까운 것 같아서 조금 당황했다.

 

하지만 아직 시작한게 얼마 없으니 이 또한 운이 좋지 않은가.

 

화이팅입니다!

 

+ Recent posts