• Tidak ada hasil yang ditemukan

SUMMARY

V. Suggestions for Applications

1. 탄성파자료해석과 인공지능

1.2 인공지능 (기계학습) 기술

인공지능이란 기계에 의해 구현되는 지능으로 인간이 가진 인지능력을 모방하여, 학습이나 문제 해결에 있어 최적의 결과를 얻는 기술을 말한다. 1950년대에 시작된 인 공지능 연구는 컴퓨터 분야의 발전과 인터넷을 통한 대량 데이터 수집이 가능하게 됨 으로써 1990년대 후반 기계학습 (Machine Learning)의 형태로 발전해왔다. 프로그램을 명시적으로 작성하지 않고 컴퓨터에 학습 능력을 부여하기 위해 시작된 기계학습의 연 구 분야는 이후 방대한 양의 연산을 빠르고 정확하게 처리 할 수 있는 GPU의 성장과 함께 인간의 뇌를 모방한 신경망 네트워크 (neural networks) 구조로 이루어진 딥러닝 의 형태로 발전하여 활발한 연구가 진행되고 있다.

인공지능은 다양한 분야에서 적용되고 있으며 인지, 지각, 학습, 추론의 기술을 바 탕으로 자연어처리, 음성인식, 로봇, 자동주행 자동차 등의 응용 기술로 분류가 가능하 다. 학습은 일반적으로 글자 인식, 대화, 상황판단과 같이 인간의 경험을 통해 얻어지 는 행동과 지식의 영속적인 축적을 말하며 머신러닝은 인공지능의 한 분야로 컴퓨터가 스스로 학습할 수 있도록 알고리즘과 기술을 개발하고 예측을 수행하는 분야를 말한 다.

머신러닝은 Fig. 3-1-1과 같이 개략적으로 분류 할 수 있다. 학습 데이터 레이블의 존재 유무에 따라 지도 학습 및 비지도 학습으로 분류하고, 강화학습은 지도학습의 하 나로 보거나 독립적으로 분류되기도 한다. 머신러닝의 기능 중 분류 (Classification) 와 군집화 (Clustering)는 주어진 입력 값의 레이블을 추정하거나 주어진 입력 값과 비슷 한 입력들의 군집을 추정해 내는 역할을 한다.

지도학습 (Supervised Learning)은 훈련 데이터 (Training Data)로부터 하나의 함수를 유추해낸다. 훈련 데이터는 일반적으로 입력 객체에 대한 속성을 벡터 형태로 포함하 고 있으며 각각의 벡터에 대해 원하는 결과가 무엇인지 표시되어 있다. 이렇게 유추된 함수 중 연속적인 값을 출력하는 것을 회귀분석 (Regression) 이라 하고 주어진 입력 벡터가 어떤 종류의 값인지 표식 하는 것을 분류 (Classification)라 한다. 분류는 레이 블이 이산적이고 값이 유한한 경우 분류, 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며 연구가 많이 되어있다. 주차게이트에서의 번호판 인식, 페이스북이나 구글 포토의 얼굴 인식, 음성인식의 경우가 분류에 해당하는 예시들이다. 회귀는 레이

Fig. 3-1-1. 머신러닝 (기계학습) 의 기능분류 ("http://www.techjini.com/blog/machine-learning/")

블이 실수인 경우 회귀문제라고 부른다. 데이터들을 쭉 뿌려놓고 이것을 가장 잘 설명 하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀기능을 사용한다. 데 이터는 입력과 실수 레이블의 짝으로 이루어져있고, 새로운 임의의 입력에 대해 새로 운 레이블을 맞추는 것이 바로 직선 혹은 곡선이 되므로 기계학습의 문제라 할 수 있 다. 지도 학습기 (Supervised Learner)가 하는 작업은 훈련 데이터로부터 주어진 데이 터에 대해 예측하고자 하는 값을 올바르게 추측해내는 것이다. 이 목표를 달성하기 위 해서는 학습기가 알맞은 방법을 통하여 기존의 훈련 데이터로부터 나타나지 않던 상황 까지도 일반화하여 처리할 수 있어야 한다. 사람이 직접 개입하므로 정확도가 높은 데 이터를 사용할 수 있다는 장점이 있다. 대신에 사람이 직접 레이블을 달아야 하므로 인건비 문제가 있고, 구할 수 있는 데이터양도 적다는 문제가 있다.

비지도 학습 (Unsupervised Learning)은 데이터가 어떻게 구성되었는지를 알아내는 문제의 범주에 속한다. 이 방법은 지도 학습 혹은 강화 학습 (Reinforcement Learning) 과는 달리 입력 값에 대한 목표치가 주어지지 않는다. 자율 학습은 통계의 밀도 추정 (Density Estimation)과 깊은 연관이 있다. 이러한 자율 학습은 데이터의 주요 특징을 요약하고 설명할 수 있다. 다시 말해 비지도 학습은 사람 없이 컴퓨터가 스스로 레이 블 되어 있지 않은 데이터에 대해 학습하는 것이다. 정답이 없는 문제를 푸는 것이므 로 학습이 맞게 됐는지 확인할 길은 없지만, 인터넷에 있는 거의 모든 데이터가 레이 블이 없는 형태로 있으므로 앞으로 기계학습이 나아갈 방향으로 설정되어 있기도 하 다. 이 방법의 대표적인 예가 군집화 (Clustering)이다. 군집화란 데이터가 뿌려져 있을

때 레이블이 없다고 해도 데이터간 거리에 따라 대략적으로 두세 개의 군집으로 나눌 수 있다. 이렇게 데이터만 가지고 군집을 학습하는 것이 군집화이다. 분포 추정 (Underlying Probability Density Estimation)의 확률 분포문제도 비지도 학습에 해당하는 예이다.

마지막으로 강화학습 (Reinforcement Learning)은 기계 학습이 다루는 문제 중에서 다음과 같이 기술 되는 것을 다룬다. 어떤 환경을 탐색하는 에이전트가 현재의 상태를 인식하여 어떤 행동을 취한다. 그러면 그 에이전트는 환경으로부터 포상을 얻게 된다.

포상은 양수와 음수 둘 다 가능하다. 강화 학습의 알고리즘은 그 에이전트가 앞으로 누적될 포상을 최대화 하는 일련의 행동으로 정의되는 정책을 찾는 방법이다. 다시 말 해 앞선 두 방법의 분류는 지도의 여부에 따른 것이었는데, 강화학습은 조금 다르다.

강화학습은 현재의 상태에서 어떤 행동을 취하는 것이 최적인지를 학습하는 것이다.

행동을 취할 때마다 외부 환경에서 보상이 주어지는데, 이러한 보상을 최대화 하는 방 향으로 학습이 진행된다. 그리고 이러한 보상은 행동을 취한 즉시 주어지지 않을 수도 있다. 이 때문에 문제의 난이도가 앞의 두개에 비해 대폭 상승한다. 대표적으로 게임 인공지능을 만드는 것을 생각해볼 수 있다. 강화학습에서는 당장의 보상 값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상 값의 총 합이 최대화되도록 행동을 선택해야 하며, 어떤 행동을 해야 보상 값의 합이 최대화되는지 모르기 때문에, 미래를 고려하 면서 가장 좋은 선택이 뭔지 행동을 여러 방식으로 수행하며 고민해야 한다. 위 방법 들과는 다르게 실시간으로 학습을 진행하는 게 일반적이다.

인공신경망은 인간의 뇌 구조를 모방하여 수치적으로 모델링 하는 것으로 생물학적 으로 신경 전달망을 구성하는 세포체 (Cell body), 수상돌기 (Dend rite s), 축삭 (Axon), 연결 (Synapse) 들이 각각 노드 (Node), 입력 (Input), 출력 (Outpuf), 가중치 (Weight)의 인공 신경망 구성으로 처리된다. 이는 하나 또는 그 이상의 여러 신경세포로부터 전달 되어 온 신호들이 합산되어 설정 값 이상을 가지게 되면 하나의 출력 신호가 생성된 다. 다수의 신경세포가 연결되어 레이어를 만들고 그 연결의 강도는 가중치로 처리된 다. 이러한 방법을 헵의 학습 (Hebb’s Learning) 또는 헵의 규칙이라고 한다.

Fig. 3-1-2. 단층퍼셉트론과 가중치함수

인공신경망 연구는 1950년대부터 시작되어 1968년의 다중 퍼셉트론 (Multi-Layer Perceptron), 최초로 신경생리학이 융합된 1979년의 네오코그니트론 (neocognitron) 모 델, 1992년의 순환신경망 (RNN, Recurrent Neural Network)으로 발전해왔다. 네오코그 니트론 모델은 현재의 CNN과 유사하다. Fig. 3-1-3 의 단층 퍼셉트론 (SLP, Single- Layer Perceptron)은 McCulloch-Pitts TLU 이론과 헵의 가중치 이론이 합해진 이론으로 입력층과 출력층만으로 구성된다. 일정 크기 이상의 신호가 올 경우 값을 전달하고 Sigmoid 함수나 tanh함수 또는 ReLU 함수를 가중치로 사용한다 (Fig. 3-1-2). 이 방법 은 신호 처리에 가장 알맞은 가중치를 알아내는 학습을 필요로 한다.

Fig. 3-1-3. 심층신경망의 구조

다층 퍼셉트론 (MLP Multi-Layer Perceptron)은 단층 퍼셉트론에서 입력 레이어 (Input Layer)와 출력 레이어 (Output Layer) 사이에 여러 개의 은닉층 (Hidden Layer) 을 하나 또는 여러 개 추가 해 주는 방법이다 (Fig. 3-1-3). 은닉층을 추가해 줌으로서 선형분리 불가능 문제와 복잡한 문제를 해결할 수 있지만 컴퓨터 계산량이 증가하는 단점을 가지고 있다. Fig. 3-1-3처럼 은닉층의 개수가 늘어나게 되면, 심층적인 학 습이 가능한 장점이 있는 반면, 신경망을 학습시킬 때 over-fitting, gradient vanishing 같은 문제가 발생하게 된다. 이 같은 문제를 해결하기 위해, pooling layer를 사용하거나 drop-out 같은 기법을 사용하는 등 신경망을 다양한 형태로 변형시켜 사용하게 된다. 이렇게 여러개의 은닉층을 사용하여 심층적인 학습을 수행하는 분야를 딥러닝이라고 부른다.

딥러닝 분야는 대부분 CNN (Convolutional Neural Network) 계열과 RNN (Recurrent Neural Network) 계열로 파생된다. CNN 은 Convolution Layer와 Pooling Layer를 포함하는 신경망으로 가중치를 갖는 마스크 (Convolution Filter, 커널)을 이용 해서 특징을 추출하고 이미지 처리에 좋은 성능을 보인다. 이 방법은 Convolution 과 Subsampling (Pooling)을 반복하면서 영상을 줄이고 그 특징을 추출한 후에 분류를 판 별하는 방법으로 Fig. 3-1-4은 CNN을 적용시킨 예이다. 필터의 값은 학습에 의해 변화 되며 필터의 수만큼 특징 맵이 나온다. RNN 의 경우 재귀적 접속이 있는 은닉층을 사 용한 신경망이며 가변적인 길이를 가지는 시계열 데이터를 이용하고 Back propagation 알고리즘과 유사성을 가진다. 또한 RNN의 너무 깊은 인공신경망으로 인해 시간이 오 래지나버린 데이터를 잊어버리는 현상이 존재하는데 이러한 현상을 극복하기 위해 RNN 대신 메모리 셀이라고 불리는 LSTM (Long Short Term Memory) 기법이 사용된 다. 이 기법은 장단기 기억을 각 뉴런마다 배치한다. RNN 은 자연어와 음성인식에 주 로 활용되고 있다. Fig. 3-1-5 은 위에서부터 차례로 CNN과 RNN의 구조를 보여준다.