강의보고오기: https://www.youtube.com/watch?v=Yk_vH_MRLCI&t=3s

 

이번 강의는 어떻게 다뤄야 할까 고민이 많았습니다.

 

MA book에서 처럼 그냥 인공지능의 역사를 다룰까? 아니면 기술사 서브노트에 나온데로 인공신경망의 역사를 할까 고민을 많이 했습니다. 또 한가지 고민은 그냥 빼버릴까 였습니다. 빼버리고 싶었던 이유는 유트브에 인공지능 역사에 대한 너무 좋은 콘텐츠가 많기 때문입니다. 저처럼 어설프게 글씨와 설명이 전부인게 아니라 화려한 비디오에 귀에 박히는 목소리로 설명해주는 좋은 자료가 많습니다. 

 

고민끝에 최초 강의를 시작했던 이유를 생각하며 기술사 서브노트를 바탕으로 설명하기로 했습니다. 제가 강의를 시작한 이유 중 하나는 기술사 공부할때 AI토픽에서 느낀 답답한 마음때문이였습니다. 서브노트를 읽어도 이해가 안가고, 이해가 안가서 관련내용을 찾아보면 "그냥 이래" 또는 모르는 부분을 이해하기 위한 수학적 원리를 파고파고 들어가야 하는 경우가 많았습니다. 그러다가 토픽 한개를 공부하느라 몇번 밤을 지세웠습니다. 

 

저의 전문성을 키우는 것과 많은 예비 기술사 분들이 서브노트를 보시면서 의문이 없었으면 하는 마음이 제가 강의를 시작한 기본 이유이므로 서브노트 내용을 기준으로 설명하기로 했습니다. 그리고 수학적 내용은 각 토픽에서 필요할때 바로 강의하는 방식으로 진행할 겁니다. 최대한 거꾸로 안 찾아가도록 말이죠. 

 

인공신경망의 역사

 

기술사 관점으로 말씀드리면 문제가 "인공지능의 역사"를 물어본 것과 "인공신경망"의 역사를 물어봤을때 다르게 써야 한다는 겁니다. 서브노트에서 처럼 "인공신경망의 역사"를 묻는다면 "딥러닝의 역사"라고 생각하고 답안을 작성하는 것이 좋습니다. 따라서, 강의에서도 Perceptron과 Back Propagation을 중심으로 설명드렸습니다. 그 중에서도 아직까지는 Perceptron에 대해서만 더 집중적으로 설명드렸는데 이유는 아직 우리는 Shallow Learning을 배우는 단계라서 그 편이 더 좋을 것 같다고 생각했습니다. 

 

중요하게 생각하셔야 할 내용은 Perceptron은 Shallow Learning에서 배우지만, 이 Percpetron으로 Connected Layer를 만들어 인공신경망을 형성한다는 것입니다. 그리고 Perceptron이 여러개 연결되면 왜 Deep한 Learning이 될 수 있는지 직관적으로 이해하시는 부분입니다. 지금 이 직관을 가지신다면 나중에 Deep Learning 공부할 때 훨씬 쉽게 이해하실 수 있을겁니다.

 

강의에서 제가 y = Wx + b에서 W를 계속 오메가라고 읽는데, 그냥 w가 맞는 같습니다. Weight의 약자인 w로 생각해 주세요. 소문자이면 벡터이고 대문자이면 행렬을 의미합니다. 제가 배울때 누군가에게 계속 ω(오메가)라고 들어서 저도 아무생각 없이 ω(오메가)라고 읽었습니다. 혼란을 드려 죄송합니다.

 

감사합니다.

 

표준모델로서의 AI 정의

 

환경을 인지하고 올바르게 행동할 수 있는 Agent를 연구하는 과학분야

 

위 정의는 Russell & Norvig MA book 4th Edition의 내용을 번역 및 요약한 정의입니다. 

 

 

강의보고오기 https://youtu.be/Vo3yeWcawPk?si=N-e9LwPFQADnEwiQ

 

안녕하세요? 

 

지난 강에서 AI와 ML의 관계에 대해서 공부했습니다.

 

ML을 학습하게 전에 ML을 이용하지 않고 AI를 어떻게 구현했는가에 대한 학습을 하면 더 좋겠지만, 대부분 사람들이 머신러닝부터 공부하기 때문에 저 역시 머신러닝부터 정리할 예정입니다. 

 

"ML전에 어떻게 Intelligent Agent를 구현했나" 에 대한 내용은 국내 유트브 및 블로그에서 찾기 어려우니, Russel & Norvig의 Artificial Intelligence A Modern Approach 4th Edition 책 (이하 MA book) 을 공부하시고 어려운 점을 영문 유트브에서 검색해서 보완할 수 있습니다.  (MA book에서 검색, 논리, 추론, 지식표현 등에 대한 내용이 있습니다.)

 

ML전 내용을 공부하면, Search 알고리즘, 논리, 추론 등을 학습하며 Python에도 익숙해질 수 있습니다.  꽤 재미있고(?) 의미있다고(?) 생각합니다. 저도 시간이 되면 다시 공부하면서 정리할 계획입니다. 

 

AI의 정의 

아무튼 지금은 MA book에서 다루는 AI 정의에 대해 설명드리겠습니다. (제가 이해한 내용을 설명하므로 원문과 다를 수 있으니 의문이 생기시는 분은 꼭 원문을 찾아보시기 바랍니다.)

 

 AI 정의에 대한 MA book 원문의 내용을 일단 소개해 드리겠습니다. 제 이해가 틀렸을수도 있으니 일단 원문 먼저 인용하는게 좋을 것 같습니다.

 

"We define AI as the study of 
agents that receive percepts from the environment and perform actions"
출처: MA book Perface 중

 

 

AI has focused on the studyand construction of agents that do the right thing. What counts as the right thing is defined by the objective that we provide to the agent. This general paradigm is so pervasive that we 
might call it the standard model
출처: MA book Chapter 1. Page 4

위 내용을 참고하여, 제 나름의 정의로 내려봤습니다. 제가 내린 정의라기 보다는 번역하고 요약했다고 할 수 있겠습니다.  

"환경을 인지하고 올바르게 행동할 수 있는 Agent를 연구하는 과학분야"

 

 

Russel & Norvig은 위 정의에서 올바른(무엇이 올바른 것인가는 애매합니다.)이라는 표현을 좀 더 구체적으로 표현하기 위해 4분면으로 설명합니다. 

 

 

마지막 4사분면이 표준모델로서의 AI의 정의에 해당합니다. 합리적으로 행동하는 Agent를 연구하는 분야라는 것입니다.  2사분면의 인간의 행동을 따라하는 연구를 넘어서서, 인간보다 합리적으로 행동할 수 있는 부분을 연구하는 것입니다. 

 

이미 인공지능은 체스에서 바둑에서 인간챔피언보다 수학적 합리성은 앞서있습니다. 최근에는 개발자, 금융, 의료, 법 등과 같은 분야에서도 인간 평균보다 훨씬 뛰어남을 보이고 있습니다. 어떻게 AI는 인간 최강자를 이길 수 있었을까요? 그렇습니다. 인간을 넘어서는 합리성을 연구했기 때문입니다. 어떻게 합리적으로 행동할 수 있을까에 대한 연구라고 볼 수 있죠.

 

유트브 강의에서 비행기의 예시를 들어 왜 인간을 그대로 모방하는 것은 한계가 있을 수 있는가에 대해 설명했습니다.(MA book에서 설명하는 내용입니다.) 한번 생각해 보시 바랍니다. 

 

표준모델로서의 정의는 불충분하다. 

하지만, Russel & Norvig은 이 표준모델로서의 AI의 정의에 의문을 제기합니다. AI가 단순히 수학적, 통계적 데이터에 기반해서 Agent의 행동을 결정하고 실행한다는 것이 항상 합리적이라고는 할 수 없습니다. 수학적으로만 합리적이면 우리의 Agent는 이기기 위해 무슨 행동이든 실행할 수 있기 때문입니다. 인간사회의 도덕적 기준에 대한 이해가 없는거죠. 이 문제가 진짜 어려운 문제입니다.

 

사실 우리 인간도 어떻게 하는 것이 합리적인가 또는 정의로운가에 대한 문제를 풀 수 없는 경우가 많습니다. 마이클 샌델 교수님의 강의나 책을 보면 합리, 정의 및 공정이 얼마나 어려운 문제인지 알 수 있죠. 

 

Russel & Norvig은 이와같은 문제를 "Value Alignment Problem"이라고 말합니다. 그리고 표준 모델로서의 AI의 정의는 Value Alignment Problem이 있어  충분하지 않다는 것이죠.  

 

그래서 Modern Appoach 관점에서 AI는 단순히 목표만을 달성하는 것이 아니라 목표에 상관없이 우리에게, 즉 인간에게 이익을 주는 Agnet를 개발하는 것이 중요하다라고 말합니다. 

 

틀린 부분이 있다면 피드백 부탁드립니다. 

 

 

참고자료

그리고 표준모델로서의 AI의 정의에 대한 깊은 고찰을 위해 참고하실 수 있는 유트브 링크를 드립니다.

https://www.youtube.com/watch?v=TjZBTDzGeGg&t=2760s

MIT 강의(AI의 뜻/정의)

 

 

 

 

감사합니다.

 

안녕하세요. 본격적으로 AI강의를 시작하겠습니다. 

강의보고오기: https://youtu.be/x8GF4SH0LSg?si=lXPLWIJkFu-IPkZD

 

AI와 머신러닝의 관계

AI는 Machine Learning을 포함하는 용어입니다. Machine Learning에는 Deep Learning, Reinforce Learning이 포함됩니다. 

AI/ML의 관계(머신러닝 딥러닝 차이)



위 그림은 AI, ML, DL, RL의 관계를 표현한 그림입니다.

AI (Artificial Intelligence)

강의에서 제가 15년 전쯤에 샀던 로봇청소기 예를 들었습니다. 그 로봇청소기는 머신러닝 기능이 없었습니다. 장애물에 부딪치면 랜덤으로 방향을 바꿨습니다. 정해진 예약만큼 지속적으로 움직이고, 어떤 장애물을 만나서 진행이 어려우면 방향을 바꾸는 정도의 기능이 있었습니다.   

 

이 로봇청소기도 AI기능이 있는 겁니다. 어찌 됐든 스스로 움직이면서 방을 청소하니까요. 아주 단순한 로직이 KDB(Knowlege DB)에 들어 가 있었을 겁니다. 

 

ML (Machine Learning): Shallow Learning 

좀 더 발전한 로봇청소기는 머신러닝 기능을 포함했을 겁니다. 이 로봇청소기는 장애물을 만났을 때 높이를 판단합니다. 그리고 자기가 극복할 수 있는 장애물인지 판단할 겁니다. 높이가 낮은 문턱은 장애물로 판단하지 않고 그냥 넘어버리는 거죠. 높이라는 특성을 파악해 장애물과 비장애물로 분류합니다. 

 

높이라는 X input에 대해 장애물인지 아닌지 판단하는 분류(Y output)를 하는 겁니다. 여러 장애물에 대해 학습이 되어있으면 새로운 장애물을 만났을 때 높이 특성을 파악해 자동으로 분류가 가능합니다. 이 정도 판단하는 작업은 선형적으로 가능합니다. 이걸 Shallow Learning이라고 합니다. 얕은 학습입니다.

 

앞으로 우리가 계속해서 학습할 부분이 이 Shallow Learning입니다. 그러니까 머신러닝 중에서 Deep Learning 전 Shallow Learning을 진행합니다.  그리고 우리가 공부하게 될 Shallow Learning의 원리는 선형대수 밎 확률과 깊은 관계가 있습니다.  그래서 수학지식이 있어야 합니다. 앞서 말씀드렸지만 코드부터 보면서 공부해도 되지만 원리 이해 또는 하고 싶으신 일을 하실 때 한계가 있을 수 있습니다. 상황에 따라 다를 수 있죠. "난 특정 서비스만 개발해서 쓰면 돼"라는 입장이신 분이라면 수학적 원리를 공부할 필요는 없습니다. 

 

ML (Machine Learning): Deep Learning

Deep Learning 기능이 탑재된 로봇청소기는 어떻게 움질 일 수 있을까요? 

 

로봇청소기에 카메라를 탑재할 수 있습니다. 이제 로봇청소기는 "눈"을 가진 겁니다. 그리고 물체를 보고 이 물체가 뭔지도 판단할 수 있습니다. 

 

예를 들어 집에서 고양이를 키운다면 로봇청소기는 고양이를 보고 고양이인지 알 수 있습니다. 고양이 이미지의 RGB특성 등을 파악해 알 수 있는 겁니다. 이 작업은 단순히 높이만 고려하는 특성보다 훨씬 복잡합니다. 그리고 이 특성은 선형적으로 파악이 안 됩니다. 이때 사용하는 기술이 CNN이고, CNN이 Deep Learning의 기술입니다.

 

Deep Learning은 머신러닝의 한분야입니다. 선형적으로 해결할 수 없는 문제를 해결할 수 있습니다. 인공신경망을 활용하여 차원이 높은 문제를 Shallow Learning보다 잘 해결합니다.

 

마지막으로 강화학습이 있습니다. Optimal 한 Policy를 찾는 머신러닝의 분야입니다. 제가 강화학습까지 지속해서 강의를 만들 수 있을지 모르겠습니다. ^^

 

자세한 내용은 강의를 참고하세요.

 

 

참고자료 

1강 강의 내용은 아래 Youtube를 참고했습니다. 시간 되시는 분들은 보시면 많은 도움이 되실 겁니다.

https://www.youtube.com/watch?v=4RixMPF4xis&t=1s 
https://www.youtube.com/watch?v=bOUfOOCFCrE

 

 


남기는 말

저는 이 강의를 기술사를 준비하시는 분들을 위해서 만들어서 코드 설명이 많지 않습니다. 제가 AI를 잘 모를 때 AI관련 책들을 많이 구매했는데, 대부분 책들이 코드를 중심으로 결과를 설명하는 책들이었습니다.

 

저의 경우는 책과 코드를 보고도 원리이해가 힘들어서 큰 도움이 안 됐습니다. 물론 모든 코드에 대해 원리를 이해하고 직접 내부까지 구현해야만 하는 건 아닙니다. 하지만 저는 코드를 보고 어떻게 만들어졌겠구나 하는 정도는 돼야 마음이 편해집니다.  

 

가장 간단한 예로 어떤 언어에서 String과 관련된 함수들을 사용할 때 제가 모든 것을 구현하지는 않았지만 어떤 방식으로 구현됐겠구나 라는 감이 있어야 사용할 때 맘이 편합니다.  

 

물론 사람마다 다릅니다. 사실 이론이 먼저냐 코드가 먼저냐는 SW개발 공부할 때도 나오는 논란입니다. 저는 정답이 없다고 생각합니다. 이론과 코드는 연결되어 있으니까요.

 

제가 학창 시절 시작해서 아직까지 보는 열혈강호라는 무협만화가 있습니다. 대부분 무협소설이나 만화에서 내공과 외공이라는 개념이 있는데, 이론이 내공의 성격과 유사하고 코드로 구현해 보는 보는 것이 외공의 성격과 유사한 것 같습니다. 만화에서 보면 어느 것을 먼저 하든 고수들은 자기도 모르게 내공과 외공 모두 높은 수준에 다다릅니다. 

 

우리가 공부할 AI도 마찬가지입니다. 코드의 고수는 이론도 분명히 고수일 것이며, 이론의 고수는 코드도 고수일 겁니다. 물론 양쪽으로  균형 있는 공부를 해야겠지요, 이론 강의를 공부하면서 작은 프로젝트를 진행하시거나, 코드를 공부하면서 그 원리를 공부하시거나 양쪽 다 좋습니다. 

 

다만, 제 강의는 공부하시분들이 이론적 배경을 잘 아실 수 있도록 도와드리는데 중점을 뒀다는 것을 미리 알려드립니다. 코드 공부는 별도 프로젝트를 진행하시거나 각 단원의 내용에 대해 ChatGPT를 활용하여 코드를 생성하시고 분석하시면서 공부하시는 것을 추천드립니다. 

 

물론 프로젝트에 필요한 코드를 만들거나 당장 필요한 업무에 적용시키기 위한 분은 이론을 다 알 필요가 없으실 겁니다. 어떤 분이 저에게 이론 공부가 중요하다고 묻는다면, 그분에게 회사에서 연구직이거나 학자가 아니면 크게 중요하지는 않다고 말씀드릴 겁니다. 특히 당장 서비스 제작이 급하신 분들은 더욱 그렇죠. 필요하신 만큼 공부하시면 됩니다. 

 

단, 시간이 되신다면 모든 분들이 원리를 깊이 공부했으면 좋겠습니다. 서비스를 만드시는 분들도 현재의 서비스에는 필요 없을 수 있어도 새로운 도전이 생길 수 있습니다. 그 새로운 도전이 다가왔을 때 원리에 대한 깊은 이해가 새로운 insight를 제공할 수도 있으니까요. 

 

모든 사람에게 기회가 올 수도 안 올 수도 있습니다. 하지만, 준비된 사람만이 기회가 왔을 때 잡을 수 있습니다. 준비되지 않았다면 기회가 왔는지도 모르는 거죠. 지금 생각해 보면 저도 많은 기회가 있었는데 그때마다 준비가 안 돼서 기회인지도 모르고 살아 온 것 같습니다. 

 

부디 모든 분들이 어떤 분야던 잘 준비하셔서 저같이 기회인지 모르고 흘려보내는 삶을 살지 않도록 기원하겠습니다. 

 

감사합니다. 

 

+ Recent posts