자유 게시판
프로필 이미지
[레벨:10]챠우
read 856 vote 0 2019.12.23 (04:33:44)

머신러닝의 이해

 

머신러닝이 어려워하는 게 뭘까동영상 인식이다머신러닝이 제대로 상용화 되려면 정지이미지 인식만으론 부족하다그런데 동영상을 처리할 수 있다면 무엇을 대체할 수 있을까일단 구청의 CCTV를 대체한다. 길거리에 불법 주정차를 쳐다보고 있는 것은 인간 공익근무요원이다고급 주택 창문에는 ADT 캡스의 적외선 인식기가 달려있다속도위반 카메라는 속도를 인식하고자 아스팔트 자르고 땅 파서 센서를 매입하고 있다. 그런데 동영상을 인식할 수 있다면 이 모든 걸 카메라 하나로 퉁치게 된다.

 

현재 머신러닝 이미지가 상용적으로 쓰이는 것은 명함인식과 카드인식, 얼굴인식 정도다딱 여기까지. 그 이상은 연구과제일 뿐이다아마존의 무인 상점은 마케팅이니깐 속지말자. 동영상 인식이 되지 않는 이상 그거 잘 안 된다아마존고는 정지영상으로 꼼수를 부린 것이다. 꼼수는 당연히 한계가 있다. 한편 단순히 생각해도 정지영상 보다는 동영상이 정보가 많으므로 인식하기 어려울 것 같다근데 프레임으로 잘라서 인식하면 되잖아?

 

하지만 문제는 프레임을 얼마나 자를 지를 정할 수 없다는 것이다초당 한 컷이면 되겠어그렇다면 초당 주먹이 100번 나가는 전설의 복서는 인식 못하겠네과연 머신러닝은 사람이 걷는 것을 인식할 수 있을까머신러닝을 따지기 전에 인간은 어떻게 하는지 생각해보라우리는 무심결에 "걷는 인간"을 인지하지만실제로 그 과정을 말로 정의하라고 하면 쉽지 않다.

 

물론 우리는 멈춘 것과 움직이는 것을 분류하고움직이는 다양한 행동 중 걷는 것과 뛰는 것을 분류했을 것이다. 여기서 핵심 과제는 어느 크기로 잘라야 하나의 행위를 완성시킬 수 있는지 정의하기가 어렵다는 것이다. 반박은 있다. "사람 걷는 걸 보니깐대충 2초에 한번씩 자르면 걷는 행위를 캐치할 수 있을 것 같은데." 그럴듯하다근데 최홍만은 어쩌지얘는 보폭이 다르고 시간도 다르다백만 명이 있다면 백만 명의 시간은 모두 다르다골 때린다.

 

#

 

공자는 일이관지하여 지식을 압축저장한다고 했다그는 우리처럼 무식하게 일일히 모든 사례를 기억하지 않는다사실 인간의 두뇌는 유전적 구조론을 타고난다어떻게 아냐고우리는 컵에 든 물을 마실 수 있기 때문이다그게 구조론의 증거다문제는 인간의 기초적인 행위에 대해서만 구조론적 유전 알고리즘을 쓰고지식에는 그걸 안 쓴다는 것이다그래서 그냥 외운다.

 

공자가 일이관지 할 수 있는 이유는 그가 패턴을 읽기 때문이다패턴을 읽을 수 있는 이유는 인식의 한계를 정하고 내용을 보기 때문이다공자의 패턴과 계 읽기는 효율적이다그의 지식은 대개 말하는 순간에 조립되어 나온 것이다반대로 우리는 조립해둔 지식을 취하려 하므로 양이 늘어난다.

 

인공지능도 마찬가지이다인공지능의 제 아무리 많이 기억하고연산 속도가 빨라도 여전히 해결되지 않는 문제가 있다귀납하는 지식으로는 아무리 쌓아봤자 헛수고가 된다감당이 안 된다컵 하나를 인식하고 그것을 잡는 기계를 만들어보자기본적인 문제는 컵의 사이즈가 천차만별이라는 것이다.

 

당신은 컵의 본질을 알고 응용할 수 있으므로 100만 가지 컵을 다 외우지 않지만컴퓨터가 귀납을 쓴다면 그걸 다 외워야 한다게다가 검색까지 하려면 환장하는 것이다컵 종류가 많은 것만 문제가 아니다그 안에 들어있는 음료의 양도 문제다음료의 양과 색이 바뀌면 컵 종류가 지수적으로 늘어나는 것과 같다이쯤 되면 포기한다그런데 두뇌의 크기가 콩알만한 까마귀도 인간의 5~6세에 해당하는 지능을 갖는다사실 까마귀도 구조론을 사용한다

 

#

 

현대의 인공지능이 진일보한 이유는 무엇일까머신러닝 혹은 딥러닝이라 불리던 기법이 만들어지기 이전에는 컵을 인식하고자 컵의 백만 가지 특징을 과학자가 모두 입력했어야 했다당신이 잘 알고있는 한글프로그램의 띄어쓰기 인식 알고리듬이다. 그거 노가다의 산물이다. 그러다가 “이름 붙이기라는 놀라운 방법을 발견했다이른바 지도학습(supervised learning)이다비유를 들어보자.

 

인간의 지식이 자손대대로 전달되는 방식은 무엇일까그것은 이름이다인간은 사물에 이름을 붙여서 자손에게 지식을 전달한다우리는 아기일 때 이름과 사물을 동시에 익혔다그러면서 대상의 공통점과 차이점을 익혔다그런데 세상에 있는 모든 개는 다 다르게 생겼는데우리는 용하게도 개를 잘 인식한다물론 치와와와 시베리안 허스키 모두 개라는 걸 우리는 쉽게 납득하지 못했다.

 

이름의 본질은 무엇인가가령 우리가 실물 개를 보고 개라는 이름을 떠올렸다면 머리에서는 무슨 일이 일어날까우리는 개를 떠올린다고 생각했지만실제로 우리의 두뇌는 고양이가 아닌 개를 떠올린 것이다다시 말한다그냥 개를 떠올린 게 아니라, “고양이가 아닌 개를 떠올린 것이다이게 무슨 말인지 잘 따져보자.

 

구조론에 의하면 어떤 것이 존재한다면 그것이 유도되는 과정이 있다고 했다그것은 바로 그것과 그것이 아닌 것부터 구별하는 것이다당신은 개를 인식하고자 고양이와 비교된 개를 인식한다당신은 순수하게 개를 인식할 수 없다그리고 "내가 보기에"라는 기준을 사용한다. 이는 사건과 사물의 차이다. 사건은 기본적으로 이진 트리 모양이다. 하지만 사물로 트리를 만들면 문어발 트리다. 자신의 존재와 계층의 구조 사이에 필연성이 없다. 저혼자 존재한다고 주장하기 때문이다.

 

우리가 자전거를 탈 줄 안다면당신은 반드시 넘어지는 방법을 아는 것이다실패가 없다면 성공도 없다물리적으로 불가능하다왜냐하면 타는 방법을 가리킬 수 없기 때문이다두뇌는 품성이라는 기준과 나쁜 놈이 있어야 착한 놈도 가리킬 수 있다당신 눈에 어떤 여자가 예뻐 보이는 이유는 못난이를 봤고 친구의 시선이라는 기준이 있기 때문이다당신은 무엇이 어떻다혹은 무엇이 무엇이다라고 말하고자 그것이 아닌 것혹은 비교된 것을 동시에 기억하고 떠올린다무인도에서 옥동자만 본 여자는 옥동자의 외모를 평할 수 없다.

 

인공지능도 마찬가지다인공지능을 학습시킬 땐이름의 종류를 사전에 규정하고 시작한다가령 CIFAR-10이라면 10개의 이미지를 분류하는 머신러닝 알고리즘을 말한다https://www.cs.toronto.edu/~kriz/cifar.html 이는 이름의 종류와 한계를 미리 정하고이름에 해당하는 다수의 이미지를 때려넣고 10개의 이름을 구분할 수 있는 특징(이미지에서 추출하는)을 훈련시킨다.

 

그럼 10가지 외의 이미지는 구분할 수 있는가없다얘는 딱 10가지만 분류하도록 훈련된 알고리즘이다. 10가지 이미지에서 어느 하나를 가리켰다면 그것은 입력 이미지가 그것이라는 것이 아니라, 9개가 아닌  바로 그것임을 의미한다. 한편 같은 방법을 쓰고 양을 늘리려면 CIFAR-100이라는 것을 쓰면 된다얘도 딱 100가지만 구별한다더 많은 이미지를 분류하려면 용도에 맞게 새로 훈련해야 한다

 

그런데 CIFAR-10에서 훈련된 특징을 CIFAR-100에도 재사용할 수 있을까없다수많은 바보들이 여기서 걸러진다. 왠지 재사용할 수 있을 것 같잖아. 그들은 이름을 사용한 훈련방법이 원자적인 특징을 사용하기 때문에 당연히 재사용할 수 있다고 착각한다. 근데 아니다. 머신러닝은 이름이 주어지면 딱 그 이름으로 분류할 수 있을 만큼의 특징만 이미지에서 검출한다이때 사용되는 개념이 공통점과 차이점 원리이다구조론에도 나오는 바로 그것. 특징은 이름에 의해 적절히 선택된다. 특징이 아니라 이름이 기준이며 단위다

 

다운로드 (4).jpg

 

 

 

 fig1 (1).jpg

 

공통점은 이름이고차이점은 특징이다개와 고양이를 구분한다고 치자머신러닝은 자체의 알고리즘에 의해 적당히특징을 캐치하고(feature extraction) 이를 가치화 혹은 계량화 하여 이름과 연결한다.(classification) 이때 이름이 계량의 기준이 된다바로 “고양이가 아닌 개라는 개념이다중간 과정은 특징을 추출하는 단계이고마지막에 output은 이름과 대조하여 해당 특징의 정도를 가치화한다.

 

이 정도면 놀라운 발전이다! 인간은 기존의 특징 찾기 노가다(feature engineering)에서 상당히 벗어났다. 하지만 여전히 문제는 남았다. 이게 정지이미지에서만 통한다는 것이다동영상에 대해서는 상당히 제한적이다가령 스타크래프트와 같은 2d 이미지 게임에서 겨우 된다그것도 상당 수준 과학자가 개입해서 겨우 가능한 것이다물론 바둑도 동영상이라고 할 수 있다.

 

하지만 바둑은 이미지 인식의 관점에서 보면 매우 쉬운 문제이다바둑이 어려운 것은 그 변화의 길이가 시간적으로 길기 때문이다바둑돌은 간단하지만 바둑알의 전개는 무진장 긴 것이다그런데 우리가 풀고자 하는 일상의 문제들은 길이기 긴 게 아니라 바둑알 하나가 매우 크고 복잡한 상황이다.이는 바둑을 풀었던 알파고로는 절대로 풀 수 없는 다른 차원의 문제다.

 

사람이 창문 근처에서 어슬렁거린다고 치자저 놈이 도둑놈인지 창문 청소를 하는 사람인지 혹은 줄리엣에게 편지를 전해주려는 로미오인지 당신은 구분해야 한다당신은 대상의 옷차림이나 시간날짜 등 여러 가지 맥락을 고려하고대상의 행동을 단순하게 패턴화하여 그를 분류한다근데 이게 머신러닝에게는 어려운 일이다.

 

인간이라면 변화하지 않는 것에 대하여 상대적으로 변화하는 것을 계층적(boundary and system)적으로 인식하고특히 계와 맥락을 지정하고자 자신의 사회적 포지션을 그 기준으로 활용한다왜 돼지 눈에는 돼지만 보일까거꾸로 돼지가 아니면 돼지의 특정 행동이 아예 보이지 않는다우리는 눈에 보이면 보인다고 생각하지만, 내가 상정한 어떤 의미와 연결되지 않으면 그것은 있어도 있는 게 아니다.

 

그런데 머신러닝이 이름을 사용하여 비약적으로 발전했지만과학자들은 이름이 일종의 계라는 것을 잘 알지 못한다그러므로 이름을 체계적으로 관리할 생각을 하지 않는다무엇보다. “관점을 제대로 정의하지 않기 때문에관측자에 따라서 대상이 달리 보일 수 있다는 것을 원천적으로 고려하지 않는다그러므로 그들은 누가 봐도 뻔한 것만 잘 구분하려 한다. 즉 관찰자가 누구이건 상관없이 납득할 수 있는 것만 인식의 대상으로 삼는다.

 

다운로드.jpg

 

그런데 바둑이 이 문제에서 자유롭다바둑판의 크기가 딱 정해져있고 바둑돌은 절대 그 범위를 넘지 않기 때문이다. 바둑판에 앉은 사람은 모두 기사다. 물론 가끔 알까기 하는 사람도 있겠지만, 머신러닝은 바둑을 두는 사람으로 게임을 고정시킨다. 위의 사진을 보자인공지능의 딜레마가 여기에 있다이 사진을 보고 인공지능은 개라고 할까아니면 포도라고 할까물론 개라고 할 것이다왜냐하면 대개는 개를 위주로 훈련시키니깐. 다음 사진은 YOLO라는 알고리즘이 사물을 인식한 결과이다.

 

maxresdefault-p1.jpg


물론 이렇게 다수의 이미지 인식에 성공하기도 한다그런데 말이다이 방법이 과연 좋은 해결책일까뒤에 있는 건물이나 나무는 왜 인식을 하지 않는가도로는하늘은반대로 생각해보자. 과연 우리는 사진에 있는 대상을 모조리 인식할까사람은 운전할 때 사진 찍듯이 이미지를 모두 쳐다볼까?

 

절대로 아니다인간은 자신과 관련 있는 것만 선별적으로 본다그 외에는 무시한다중요한 것은 인간이 대상 중 무엇이 자신과 관련이 있는지를 결정할 수 있다는 것이다구조론에서 자주 언급되듯이 멍청한 인간은 중요한 것은 보지 못하고쓸데없는 것만 본다.

 

인공지능도 마찬가지이다저 알고리즘(YOLO)은 무엇이 중요하다는 개념이 아예 없다왜냐하면 “사건의 개념이 없기 때문이다무엇이 중요하다고 말하려면 기준이 있어야 하며그 기준을 정하려면 "나"를 넣어야 한다근데 현재 머신러닝에서는 “가 없다.

 

그나마 이미지에 바운더리(사각형 박스)를 그릴 수 있는 것도 사람이 상당히 개입한 결과다그런데 저게 언제나 통하지 않는다는 게 문제이다도로의 상황은 다양하게 변하기 때문이다그 모든 변화에 과학자가 다 개입할 수는 없다경우의 수가 너무 많다사실 바운더리를 정하는 것도 사실 “가 들어가야 능동적으로 변화시킬 수 있지만해당 알고리즘은 무시한다.



제목 없음.jpg

다시 말하지만 전문가와 일반인은 관점(인식하려는 대상의 이름의 종류)이 다르므로 대상을 다르게 본다.

 

그럼 인공지능은 희망이 없나있다사실 현재의 인공지능에서 무심결에 규정한 뻔한 전제를 오히려 훈련의 대상으로 삼으면 된다최근에 인공지능과 관련한 이슈는 인종차별이다이미지나 텍스트의 인종차별이 나오는 이유는 머신러닝을 훈련하고자 이름을 붙인 인간이 인종차별자이기 때문이다즉 이름에는 관점이 반영된다그러므로 관점이 반영된다는 사실 자체를 변수로 두면 된다.

 

관점이라는 하나의 관문만 통과하면 그 이후부터는 일사천리다생각보다 빠르게 인공지능은 완성될 수 있다. "현재의 인공지능 알고리즘은 뭔가 근본적으로 잘못 되어 있다."라는 게 내 주장이다구글이 알파고로 인간을 따돌리며 주가를 올렸지만새로운 알고리즘이 나온다면 구글의 최신 기술도 단번에 쓰레기가 될 수 있다


알파고는 바둑이라는 게임이 고정적이므로 현실세계처럼 게임 자체가 변화하는 경우엔 대처할 수가 없다. 룰에 의해 정의 되는 게임 자체를 학습 대상으로 삼아야 한다. 물론 쉽지 않다. 게임의 구성요소를 분명히 밝혀야 하기 때문이다. 하지만 그래야 인간의 지식이 인공지능으로 게임(이름)을 통해 복제될 수 있다. 




프로필 이미지 [레벨:12]kilian

2019.12.23 (05:04:10)

생물이 40억년 걸린 것을, 인공지능은 40년 정도 연구되어 왔으니... 저는 특별한 장벽은 없다고 생각합니다...그저 시간의 문제일 뿐...어떤 특이점을 통과하면 생물(인간)의 지능이 사용하는 알고리즘과 다른 차원의 알고리즘을 쓰는 (인공)지능이 나오는 것도 가능할지도...

프로필 이미지 [레벨:10]챠우

2019.12.23 (15:50:59)

이 세상에 여러가지 알고리즘은 없습니다. 

우주의 알고리즘은 단 하나이며, 

그것을 설명하는 것이 구조론입니다. 

다만 그 하나의 원리가 다양하게 보일 수는 있습니다. 

프로필 이미지 [레벨:12]kilian

2019.12.24 (04:45:10)

언급된 알고리즘은 원론적인 알고리즘을 의미하는 것이 아니고, 특정 시점에서 사용하(되)는 머신(의사결정 기계, 생물 포함)에서 돌아가는(이미 구현된) 구체적인 코드(기법)을 의미합니다...

[레벨:6]오자

2019.12.23 (11:02:17)

네이밍이 프로그래밍의 전부라고 말해도 과언이 아니며

네이밍이 결국 언어아니겠습니까?

즉, 언어가 다라고 볼 수 있다고 말할 수 있습니다.


네이밍은 구조적이어야 하는데

가령, 유전자가 같은 것은 동일한 구조로 네이밍해야 다음에 다시 볼 때 readible(직관적 이해)합니다.

프로필 이미지 [레벨:10]챠우

2019.12.23 (15:47:08)

프로그래밍에서의 네이밍 스페이스는 트리의 개념으로 만드는데, 

복합 구조체에서 변수나 함수의 이름 충돌을 막고자 만든 것이죠.

이는 집합의 개념을 반영하는 구조라고 할 수 있습니다. 


구조론에서의 사건 구조는 각각의 개체가 필연적인 관계를 가지는데, 

그것은 마치 주어와 목적어가 전제라는 상위 계층에 대하여 ,

동사의 전후가 주어라는 상위 계층에 구조/논리적으로 밀접하게 관련되는 것과 같습니다. 


일반적으로 통용되는 트리는 수학에서의 집합 구조를 트리화 한 것일 뿐이며

이는 집합내 원소를 모으는 근본 이유에 대해서 기술하지 않습니다. 

0_ZLrIO_B67108JStC.jpg

네이밍 스페이스가 이런 식이죠. 집합구조입니다. 

문제는 집합구조의 중심이 집합이 아니라 원소라는 겁니다. 

근데 원소의 결합체인 집합이 원소보다 더 상위 계층이라는게 딜렘마입니다. 


위 그림에서 '거래 1, 2'라는 집합이 '거래1'과 '거래2'의 상위 계층인데, 

표현의 중심은 원소(거래1, 거래2)에 있다는 거죠. 

이 때문에 영어에서 단수형, 복수형, 추상형을 엄격하게 구분합니다. 

그게 계층(맥락)을 표현하기 때문입니다.


반면 구조론에서 말하는 트리는 

원소를 상대적으로 관계를 절대적으로 규정합니다.

즉 관계(상위)가 규정되고 나면 원소(하위 종속)를 그 관계에 한정하여 

상대적으로 규정하는 것입니다. 


가령 국가를 집합론으로 설명하면

국가는 국민이 모여서 이뤄진다고 말하지만, 


구조론으로 보면, 어떤 자원에 대해 

경쟁관계를 가지는 외부 세력과 내부 세력의 대칭이 규정되면

이때 세력을 국가라고 이름을 붙이는 것이며,

그러므로 국가의 구성은 단 1명이 될 수도 있습니다. 

(물론 UN이 인정해주지는 않죠. 말이 그렇다는 거.)


그리고 이는 굳이 말하자면 이진트리의 형식으로 표현됩니다. 

대칭의 개념이 적용되기 때문입니다. 

첨부
List of Articles
No. 제목 글쓴이 날짜 조회
4971 구조론 목요모임(장안동 첫 모임 ) image 5 오리 2020-01-02 555
4970 머신러닝의 구조론적 분류 image 1 챠우 2019-12-30 535
4969 귀납적인 점은 없다 챠우 2019-12-30 371
4968 스토브 리그 image 아나키(÷) 2019-12-28 586
4967 2019년 한해도 수고 많으셨습니다. 2020년도 힘차게 전진을! 1 회사원 2019-12-28 354
4966 계와 원소 그리고 자연어처리(머신러닝) image 챠우 2019-12-27 375
4965 구조론 목요모임(기존과 같은 건물 8층) image 오리 2019-12-26 267
4964 클래식 무료 공연 (시청 12월 25~28일) image 1 수피아 2019-12-25 374
4963 인간은 무엇을 학습하는가? feat. 인공지능 image 챠우 2019-12-24 441
» 현대 머신러닝의 개략적인 이해 image 5 챠우 2019-12-23 856
4961 이세돌 은퇴대국 1 SimplyRed 2019-12-21 637
4960 헤라클레이토스와 파르메니데스, 제논 그리고 인공지능 image 챠우 2019-12-21 500
4959 yes인가 no인가 챠우 2019-12-19 448
4958 한국어와 영어의 맥락 차이 챠우 2019-12-19 593
4957 구조론 목요모임 (기존과 같은 건물 8층) image 1 오리 2019-12-19 261
4956 뉴닉이 뜬다고 챠우 2019-12-19 399
4955 블록체인 전체적인 조망 mowl 2019-12-14 616
4954 낡은 컴퓨터에서 나온 "서프라이즈" 1회 정모 사진 image 1 hojai 2019-12-14 737
4953 언어는 관점이다 챠우 2019-12-14 472
4952 기아의 변화 챠우 2019-12-14 427