학습 데이터는 판정을 잘 하지만, 검증 데이터나 실제 현장에 적용할 때는 학습 때보다 성능이 떨어지는 과적합(overfitting) 문제의 여러 해결책을 이미 앞선 연재를 통하여 살펴보았다. 이번 연재에서는 인공지능 연구의 거장인 토론토대의 힌톤(Hinton) 교수팀이 발표한 이래로 과적합 문제의 해결책으로 굳건히 자리 잡은 Dropout에 대하여 살펴보기로 한다. 만약에 무한의 연산 능력을 갖고 있다면, 과적합 문제를 줄이기 위한 이상적인 방법은 동일한 데이터 집합을 대상으로 가능한 모든 신경망을 잘 학습시키고, 각 모델의 예측에
머신 러닝을 통해 학습 데이터 뿐 만 아니라 한번도 보지 못한 새로운 데이터나 테스트 데이터까지 척척 잘 인식할 수 있는 모델을 개발하고 싶어하지만, 과적합(overfitting) 문제로 인해 그러지 못한 경우를 종종 목격한다. 지난 연재에서 살펴본 것처럼, 과적합 문제가 발생하는 원인은 학습 데이터 자체가 부족한 경우도 있지만, 너무 학습 데이터에만 특화된 복잡한 모델을 사용하기 때문에 발생하기도 한다.학습 데이터가 부족한 경우라면, 학습용 데이터를 더 많이 취득하거나 실제 상황과 비슷한 학습 데이터를 증강(data augment
통계는 전체 모집단으로부터 일부 데이터를 표본 추출하고 그것들을 분석해 전체 모집단의 특징을 해석한다. 통계에서 좋은 결과를 얻으려면 표본 조사를 할 때 전체를 대변할 수 있는 질 좋은 샘플을 취하고 그 샘플들로부터 전체를 잘 설명할 수 있는 모델을 만들어야 한다. 전체를 대표할 수 없는 치우친 샘플 데이터를 얻게 되면, 그 샘플들의 특성에 지나치게 특화되어 ‘장님 코끼리 만지기’처럼 엉뚱한 결과를 초래할 수도 있게 된다.통계와 유사한 측면이 많은 머신러닝에서도 항상 비슷한 문제가 발생할 수 있다. 우리가 머신러닝을 통하여 얻고자
수 많은 변수로 구성된 인공 신경망 모델이 설계자가 원하는 결과를 내려면, 변수들을 최적의 상태로 설정해주는 체계적인 방법이 필요하며, 기본적으로 경사 하강법(GD)에 기반한 방법들이 사용됨을 확인하였다.학습에 사용되는 전체 데이터의 결과를 이용하여 변수를 갱신하는 ‘배치 경사 하강법(Batch GD, BGD)’은 이론적으로 훌륭한 방법이지만 학습 데이터가 증가할수록 속도가 느려지거나 하드웨어 자원의 한계 문제에 직면할 수도 있다. 그래서 학습 데이터를 소 그룹으로 나누고 소 그룹의 결과를 이용하여 변수를 갱신하면, 소 그룹의 특성
인공 신경망의 학습이란 신경망을 구성하는 많은 변수들이 최적이 되도록 변수의 값을 조금씩 변경시켜가는 최적화 과정이며, 이것은 마치 아주 제한적 범위만을 볼 수 있는 여행자가 네비게이션이나 지도의 도움 없이 길을 찾아가는 것과 유사하다. 최적 지점이 어디인지 정확하게 알 수 없기 때문에 그 여행자는 오직 경사(gradient)가 낮아지는 방향으로 이동한다. 이것이 경사 하강법의 원리이며, 수식으로 표현하면 “θ = θ - α▽J(θ)”가 된다. 여기서 θ는 변수, J(θ)는 비용함수, ▽J(θ)는 비용함수의 경사, α는 학습률(le
인공 신경망 모델은 많은 변수를 갖고 있고, 그 변수들이 최적이 되도록 설정해줘야 원하는 결과를 얻을 수 있다. 보통 학습 과정에서는 변수의 값을 조금씩 변경시키면서 최적 여부를 판단하며, ‘현재의 변수’ 값들을 사용했을 때 모델의 성능이 얼마나 좋은지를 평가할 수 있는 수단으로 ‘비용 함수(cost function)’를 사용한다. 이 비용 함수는 대부분 이상적인 모델에서 나오는 기대값과 ‘현재의 변수’ 값으로 구성된 실제 모델에서 나오는 실측값과의 ‘차이’를 이용하기 때문에, 비용 함수가 최소가 되는 지점이 바로 학습의 목표이며,
인공 신경망은 수 많은 변수를 가진 복잡한 수식으로 이루어진 함수로 볼 수 있다. 이 함수가 ‘원하는 결과(즉, 학습이 의도했던 결과)’를 내게 하려면, 많은 변수들이 최적이 되게 설정해줘야 하는데, 이 과정을 ‘훈련’ 또는 ‘학습’이라고 부른다. 수백 수천만 개의 변수들을 우연히 설정하여 최적이 될 것이라고 기대하는 것은, 단어들이 들어 있는 통에서 복원 방식으로 뽑은 후 그것들을 연결했더니 우연히 한편의 훌륭한 소설이 될 것을 기대하는 것과 같다. 그러므로 뭔가 체계적인 방법이 필요하며, 지난 연재에서 살펴본 것처럼 오차 역전파
지난 연재를 통하여, 사람의 뇌세포와 유사한 구조를 갖는 인공세포에 대하여 살펴보았다. 이런 인공세포(뉴런)들을 연결하여 망(network)을 구성할 수 있으며, 이것을 인공신경망(artificial neural network, 줄여서 신경망)이라고 부른다. 사람의 뇌세포들은 방사형으로 복잡하게 연결이 되어 있지만, 인공신경망은 해석을 단순하게 하기 위해 보통은 층 구조로 구성한다. 맨 앞에서 입력 신호를 받아들이는 부분을 ‘입력 층(input layer)’, 최종 결과를 출력하는 부분을 ‘출력 층(output layer)’, 그리
사람의 뇌세포를 모방한 인공세포 지난 연재를 통하여, 사람이 어떻게 학습하는지 살펴보았다. 미시적 관점에서의 학습이란 세포와 세포를 연결하는 시냅스 영역의 세기(strength)를 조절하는 과정으로 볼 수 있다. 학습을 하게 되면, 뇌세포들 간의 신호 전달의 세기를 결정해주는 시냅스 값들에 변화가 생기게 되며, 이 변화는 무작위적인 변화가 아니라 속도나 효율에 다소 차이가 있지만 학습이 의도하는 방향으로 변하게 된다.만약에 사람의 뇌세포 수준에서 일어나는 동작과 비슷한 인공적인 수단이나 장치를 만들 수 있다면, 사람이 학습하는 것과
사람의 학습인공지능을 구성하는 인공신경망은 사람의 뇌에서 학습하는 방식을 모방하여 만들어졌다. 그러므로 인공지능의 학습이나 동작 원리를 이해하려면, 먼저 사람이 어떻게 학습을 하는지 알아보는 것이 필요하며, 이번 호에서는 이 부분에 대하여 살펴볼 예정이다.사람의 학습은 두뇌를 통해 이루어지며, 두뇌는 각 영역 별로 다른 기능을 담당한다. 이성이나 추론에 관련된 부분은 전두엽 부분이 주로 담당을 하고, 시각은 후두엽 영역이, 청각이나 기억은 측두엽 영역이 담당하는 식이다.사람의 두뇌에는 약 1000억개 정도의 뇌세포가 있는데, 뇌세포
“알기 쉬운 인공지능”에 연재를 시작하며…2016년 알파고와 이세돌 간의 역사적인 바둑 대결은 우리에게 큰 충격을 주었으며, 새로운 시대를 예고하는 신호탄이 되었다. 이후, 채 1~2년이 지나지 않아 인공지능 기술은 우리 일상으로 빠르게 파고 들기 시작했다. 인류 역사상 최초로 짐승이나 가축이 아니라 기계를 훈련시켜 판단력과 추론 능력을 갖게 만든다는 사실과 공상 과학 소설이나 SF 영화로 인해, 때로는 사람들로부터 지나친 우려와 기대를 동시에 받고 있는 상황이다.하지만 현실의 인공지능은 영화 속의 터미네이터처럼 인류를 위협하여 막
하이퍼변수 최적화 문제를 흔히 “Multi-Armed Bandit(줄여서 MAB로 사용) 문제”라고 부른다. 여기서 Bandit은 원래 길에서 여행객을 노리는 ‘노상 강도라’는 뜻을 갖고 있고, Multi-Armed는 ‘팔이 여러 개 있는”의 의미이기 때문에 결합하면 직관적으로 이해가 가지 않을 수도 있다. MAB는 승률을 알 수 없는 다수의 슬롯머신이 있는 카지노에서 한정된 돈(게임 머니) 만을 사용하여 가장 승률이 좋은 기기를 찾아내어 결과적으로 가장 많은 돈을 따는 방법이나 알고리즘을 뜻한다. 슬롯머신 게임을 통해 가장 많은
CNN 구조(5) – GoogLeNet 2014년 ILSVRC(International Large Scale Visual Recognition Challenge)는 구글의 GoogLeNet이 차지했고, 아주 근소한 차이로 옥스퍼드 대학교의 VGGNet이 그 뒤를 따른다. 주목할 점은 2014년부터 CNN 구조에 큰 변화가 나타나기 시작했으며, 한마디로 표현하면 “deeper”다. CNN의 구조를 더 잘 이해할 수 있게 된 연구진들은 성능 향상을 위해 망의 크기를 늘리는 방향으로 시선을 돌렸다.여기서 망의 크기를 늘린다는 것은 단순하
1개의 딥러닝 신경망 모델을 학습시키는데 하루 이상, 어떤 것들은 몇 일이나 일주일 이상이 걸리는 경우도 드물지 않다. 이 경우에 최적의 하이퍼변수의 조합을 찾아내는데 걸리는 시간은 단지 몇 개의 조합에 대하여 시도해보더라도 몇 주 혹은 몇 개월이 소요될 수도 있다. 그러므로 납득 가능한 시간 안에 최적 혹은 최적에 가까운 하이퍼변수 조합을 찾아내려면 다음과 같은 몇 가지 방법을 떠올릴 수 있다. 우선 개별 조합의 모델에 대한 ‘평가 시간’을 줄이기 위해 끝까지 수행하고 판단을 하는 것이 아니라, ‘조기 종료(early stoppi
이전 연재에서 살펴 보았듯이, AlexNet은 영상 인식 분야의 연구를 딥러닝으로 전환시키는 도화선 역할을 했다면, ZFNet은 “Visualization(시각화)”를 통해 CNN 내부에서 무슨 일이 일어나는지 알 수 있게 하여, 향후 CNN 의 비약적인 성능 개선의 토대를 마련했다는 점에서 의미를 갖는다.2014년부터 CNN 모델의 경향을 한마디로 꼽는다면, 바로 “Deeper” 이다. AlexNet이나 ZFNet이 8 layer 수준이었다면, 2014년의 SOTA(State of the Art) 신경망은 10 layer를 가볍게
2012년 ILSVRC(국제 대용량 영상 인식 대회)를 우승한 AlexNet 에 대한 소식은 관련 분야 연구자들에게 엄청난 자극과 희망을 주게 된다. AlexNet은 16.4%의 classification 에러율로 우승을 했지만, 2013 년 ILSVRC에서는 ZFNet이 11.7%의 에러율로 우승을 하였으며, AlexNet 보다 좋은 결과를 보이는 팀도 무려 8개나 된다. 이것은 마치 한동안 한계라고 여겼던 기록이 누군가에 의해 한번 깨지게 되면, 그 다음에는 그것을 깨는 기록들이 무더기로 나오는 것과 유사하다. AlexNet이
2012년에 발표된 AlexNet은 비전 기반의 인공지능의 역사에서 큰 획을 긋는다. ImageNet은 시각 인공지능 성능을 평가할 때 사용되는 대표적인 데이터 집합으로 영상의 수가 1400만장이 넘을 정도로 대용량을 자랑한다. AlexNet은 이런 ImageNet 데이터를 기반으로 한 대용량 영상 인식 대회 “ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 2012”에서 우승을 하게 된다. 인식 성능에 있어 그림 1.처럼 2011년 우승자에 비하여 거의 10% 포인트 정도 가
지난 연재에서는 딥러닝 신경망과 같은 복잡한 머신 러닝 모델의 체계적인 하이퍼변수 최적화 기법인 ‘베이지안 최적화(Bayesian optimization)’에 대하여 살펴보았다. 사실상 무한대에 가까운 하이퍼변수의 탐색 공간에서 비교적 적은 시도만으로 최적이나 최적에 가까운 하이퍼변수 조합을 찾아내기 위해 적절한 대리 함수(surrogate function)와 수용 함수(acquisition function)를 정하고, 기존의 탐색 지점을 바탕으로 효율적으로 다음 탐색 위치를 찾아가는 방법임을 확인하였다. 이번 연재에서는 베이지안
몇 편의 연재를 통하여 CNN의 기본 개념에 대하여 살펴보았다. 이번 연재부터는 CNN의 구조에 대하여 살펴볼 예정이다. Yann LeCun 박사가 CNN의 개념을 최초로 발표한 이래 엄청난 발전이 있어왔으며, 딥러닝 하면 CNN을 떠올릴 정도로 대세가 되었다. 아래 그림 1.은 ImageNet 대용량 영상 데이터를 기반으로 한 인식 성능 비교 데이터로, 2012년 AlexNet이라는 딥러닝 기반의 CNN 구조가 발표된 이후 빠른 속도로 성능을 개선하여, 통상적인 사람의 인식 에러율이 5% 정도라도 알려져 있는데, 2015년을 기점
지난 연재에서 사람은 인지할 수 없을 정도의 작은 교란(perturbation) 만으로도 인공지능의 판단을 흐리게 만들 수 있는 ‘적대적 공격(adversarial attack)’의 개념과 다양한 예제를 살펴보았다. 사람보다 훨씬 뛰어난 능력을 보여주는 인공지능을 속일 수 있다는 개념, 즉 인공지능을 무력화 시킬 수 있다는 개념은 연구자들의 큰 관심을 불러일으키기에 충분하였지만, 어찌 보면 인공지능의 확산의 걸림돌이 될 수도 있을 것 같다. 적대적 공격(attack)과 방어(defense)는 최근 인공지능 연구자들의 활발한 연구주제