Neural Network

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
신경세포를 모방하여 만들어진 인공지능 알고리즘.

척추동물의 신경망은 약 109개가 넘는 뉴론(neuron)들이 얼기설기 엮여 있는 것으로, 그것이 생각을 하는 원리는 이렇다. 우선 감각기관을 통해 자극을 받아서 그 신호를 연합령에 전달한다. (결코 1이나 0은 아닙니다. --; ) 연합령에서는 감각령(지각령)의 뉴런보다 다소 짧은, 그러면서 엄청나게 많은 수의 뉴런들이 그 신호를 병렬적으로 받아들인다. 그리고 그것을 아직까지 밝혀지지 않은 메커니즘을 통해 입력된 신호를 연산하여 그 결과를 운동령으로 내보낸다. 그 내부의 신호는 이제까지의 연구로 미루어보아 어떤 종류의 끌개를 이루고 있다고 한다. 최근까지의 뇌과학 연구의 결과는 생각보다 엄청난 것으로 미국에서는 쥐를 원하는 목적으로 움직일 수 있는 신호를 감각령에 전달시키는 데 성공했다고 한다.

NeuralNetwork는 이런 엄청난 '뇌'를 모방한 것으로 '뇌'를 이루는 단위인 뉴런을 모사하는 것으로 시작했다. 그것이 TLU이며 초기의 TLU는 실패라고 결론이 내려졌다. 그러나 1960년대 이후 홉필드 et al.의 연구로부터 multilayered perceptron을 개발했다. 그리고 이것이 현재까지의 모든 것들 중에 실제로 가장 많이 이용되며, 성능도 우수한 것이라고 알려져있다.



1. TLU

NeuralNetwork는 여러 개의 TLU로 형성되어 있다. TLU라는 것은 Threshold Logic Unit의 약자로서 X={x1, x2, ..., xn}이라는 Input Vector에 대해 x1*w1 + x2*w2 + ... + xi*wi + ... + xn*wn (wi는 xi가 문제에 대해 얼마나 많은 비중을 가지는가 하는 정도 혹은 가중치.)를 구하여 그 값이 임의로 정해진 threshold value보다 크면 1을 출력하고 그렇지 않으면 0을 출력하는 회로를 말한다.

2. 신경망(Neural Network)과 BioInformatics

최근의 ArtificialIntelligence 에서는 S-R(Stimulus-Response)을 지능의 가장 기본적인 지능의 단위로 생각하는 경향이 있다. (이는 과거의 logic기반의 인공지능과는 심각한 차이가 있다! 이것은 최근의 경생물학CognitiveScience의 발전과도 많은 관련이 있는 듯 하다.) NeuralNetwork는 이런 방향에서 접근하는 ArtificialIntelligence 중에서 꽤 오래된 방법이라고 생각된다. 그렇다면 생물정보학에서 NeuralNetwork를 어떻게 쓰는가하는 것이 의아해진다. SR기반의 NeuralNetwork생물정보학의 link는 어디에 있을까.

생물정보학에서 하고자하는 일의 가장 중심이 되는 것은 바로 DNA의 정보로부터 단백질이 만들어지는 그 안의 화학적 과정을 하나하나 이해하지 않는다고 하더라도, 즉, 매우 물리학적으로 표현하자면, DNA정보와 주변 조건(온도, pH등)이 우리에게 주어진 피연산자이고 그 내부의 화학적인 과정은 아직 알려지지 않은 연산자이고 그런 과정을 거쳐서 만들어진 결과물인 단백질이 우리에게 최종적으로 알려진 상태라는 가정 하에 주어진 입력(Gene)에 대해 어떤 출력(단백질)이 나올 것인가에 관한 것이다. 이에, NeuralNetwork를 이용해서, 입력과 출력간의 비선형 상관관계를 추론하고자 하는 것이다.

1992년 NeuralNetwork 에 대한 Snowbird conference 에서 UC Santa Cruz 그룹은 protein sequence multiple alignment 를 모델링하는 HiddenMarkovModel 이라 불리는 확률적 모델에 대한 기초적인 결과를 발표하였다. 이를 바탕으로 하여 neural modeling 에 대한 연구가 활발해졌으며, 생물정보학의 가장 강력한 방법론 중의 하나로 등장하게 된다.

Cambrige 에서는 이에 대한 연구를 바탕으로 BiologicalSequenceAnalysis 라는 서적을 출판하였으며, 이 서적은 생물정보학 입문의 가장 대표적인 서적 중의 하나이다. 또다른 그룹인 Caltech 에서도 동일한 방법론을 바탕으로 BioinformaticsTheMachineLearningApproach 라는 서적을 출판하였으며, 전자가 주로 HiddenMarkovModel 에 중점을 둔 반면, 후자는 MachineLearning 의 방법론들인, NeuralNetwork, HiddenMarkovModel, BayesianInference, GeneticAlgorithm 등의 내용을 보다 광범위하게, 하지만 조금은 친절하지 않게(^^) 다루고 있다.

3. NeuralNetwork의 학습

(텀즈에서 발췌)
정보기술에서의, 신경망은 거의 사람 뇌의 동작에 가깝게 만든 프로그램이나 데이터구조 시스템을 말한다.
신경망은 보통 병렬로 작동하는 많은 수의 프로세서들이 관여하는데, 각 프로세서는 자신만의 작은 학문적
영역을 가지고 있고, 자신의 메모리 내에 있는 데이터를 액세스한다. 신경망은 으레 데이터들의 관계들에
관한 많은 량의 데이터나 규칙이 공급됨으로써, 초기에 학습된다 (이러한 데이터나 규칙에 관한 예를 들면,
"할아버지는 어떤 사람의 아버지보다 나이가 많다" 등이 있다). 프로그램은 신경망이 외부의 자극에 어떻게
반응해야 하는지를 가르치거나, 또는 그 자신이 행동을 시작할 수 있다. 

신경망은 판단을 내리기 위하여 종종 퍼지이론을 사용한다. 신경망들은 가끔 지식층의 형태로 묘사되며, 더
 복잡한 네트웍들은 일반적으로 더 깊은 계층을 가지고 있다. 피드포워드 (feedforward) 시스템에서,
데이터들의 관계에 관해 학습된 내용들은 지식의 상위 계층으로 피드포워드 될수 있다. 

현재 신경망이 활용되는 분야들에는, 오일 탐사를 위한 데이터 분석, 일기예보, 생태학연구실에서의 핵산
배열순서 해석, 사고 또는 의식 모델의 탐구 등이 포함된다. 리차드 파워즈라는 사람은 '가라티 2.2'라는
자신의 최근 소설에서 "헬렌"이라는 이름의 신경망이 학습을 통해 영문학 종합시험에 합격할 수 있다고
상상의 나래를 펼쳤다. 

3.1. Back Propagation Algorithm


4. 신경망의 장점과 단점

  • 장점
    • 학습에 의한 수렴이 빠르다.
    • 올바르게 설계되고 학습된 신경망의 경우 새로운 입력값에 대해 일반화 성능을 보입니다.
    • 기존의 통계적인 알고리즘으로 구현이 어려운 "인식"이나 "추론"의 문제의 해결의 대안으로서 활용될 수 있습니다.--그로밋
    • 기존의 노이만 형 컴퓨터의 고속 순차처리와는 달리 다중병렬처리(Massive Parallel) 방식으로 정보를 처리하여 부분 파손이나 부분 오동작에 상관없이 전체적인 성능을 유지합니다.-그로밋
    • 기존의 노이만 형 컴퓨터의 번지주소방식 및 국소 메모리와는 달리 연상기억방식 및 전체 메모리를 형성합니다. 따라서
  • 일부가 파손되어도 메모리를 상당부분 복원하여 준다고 합니다-그로밋
    • 한번 학습완료된 네트웍은 피드포워드(feedforward) 방식으로 고속으로 결과값을 내기때문에 소프트웨어/하드웨어적으로 얼타임 시스템 구현이 용이합니다.
    • GeneticAlgorithm과는 달리 이론적인 배경이 탄탄하다는 점을 들 수 있다. 즉, 신경망을 학습시키는 과정에서 각 TLU들의 weight가 error를 적게 발생하는 방향으로 feedback 된다는 점이 이론적으로 증명되어 있다.
      GeneticAlgorithm도 이론적인 배경으로 SchemaTheory가 있습니다.

      제가 알기로는 신경망 또한 이론적 근거가 약한 것으로 알고 있습니다. 확률론 적 견해로 신경망 모형이 일종의 distribution을 표현하는 다른 방법이다라고 하는데 이로 인한 증명은 주어진 집합에 상당히 강한 가정을 하고 또한 함수에 대한 가정도 꽤 큽니다. K-1외에 증명된 게 없죠...에러가 적게 발생하는 방향으로 피드백된다는 것은 feedback모형인 경우 고차 비 선형 함수를 여러 방법으로 최적화하는 식으로 추정하기에 뉴럴 네트워크의 특성이 아니라 최적화 루틴(steepest descent, LM, newton)의 특성이라고 할 수 있습니다.
      이해가 안 되네요. 조금 더 쉽게 (혹은 구체적으로) 설명해 주시면 고맙겠습니다. --지원
      그러니까 특수한 경우에만 수렴하기 쉽다는 말이죠.

  • 단점
    • 신경망에 내재된 잘못된 파라미터 선정시 국소최소점emf(Local Minima)에 빠질 수 있다.
    • 학습된 결과로 나온 신경망에서 정보를 얻기가 거의 불가능하다는 점이 신경망의 가장 큰 단점이다.
    • 추정치의 불안정성. 상당히 좋은 set에다가 적절한 모형이 아니면 unique한 추정값을 얻기가 어렵습니다. 따라서 이런 뉴럴 네트워크등은 scientific한 모형이 아니라 일종의 art, 휴리스특한 접근법이 되겠습니다.
    • 신경망은, 대개 일반화 에러율이 학습 에러율 보다 낮음을 알 수 있다. 그 이유는 무엇일까? 인간이 학습을 하는 경우, 학습 에러율이 높음에도 불구하고 테스트(일반화) 에러율이 낮을 수는 없다. 왜냐하면 인간의 경우엔 일반화 과정이 명확한 이론적 지향성을 띠기 때문이다. 즉, 인간은 uniform한 이론체계를 바탕으로 새로운 구체적 사례에 대한 판정을 내리는 것이다. 그러나 신경망은 판정의 유연성을 높이려는 의도에서 deterministic한 일반화 공식을 쓰지 않는다. 그래서 신경망의 학습은 본질적으로 개별 노드들 사이의 일차적 관계(weight)가 변화하는 과정이다. 즉, 각 노드들은 판단의 전체 구조와 분리되어 있다. 이는 다르게 말하면, 각 input과 output들, 그리고 hidden unit(즉 기호들)에 대응하는 내적 표상, 그리고 그 표상을 포함하는 전체 표상 구조가 필요하나 신경망은 그럴 수 없다는 것이다. 그러므로 이런 접근 방식으로 구성된 AI는 근본적으로 "의미"를 산출해 낼 수 없고, 따라서 고차원적인 학습이 불가능하다고 생각한다.
    • 신경망 모델의 선정 및 설계, 학습데이타의 준비, 학습 파라미터의 선정, 결과물의 후처리, 프로그래밍 등등에 엄청난 노하우와 시간, 시스템자원이 필요하다는 것도 단점-- 그로밋

      신경망과 베이지안망 사이의 가장 큰 차이는 역시 전체적이고 논리적인 추론 모델의 존재여부라고 생각합니다. 물론 베이지안망 역시 결정론적인 추론규칙을 수립하여 그에 따르는 것은 아니지만, 조건부 확률을 매개로 하여 논리적인 관계를 설정하죠. 즉, "얼마얼마의 확률로 이 두 노드의 진리치 사이에는 어떠어떠한 추론 관계가 성립한다."는 식의 모델을 세우는 것입니다. 그리고 그러한 모델은 두 노드 사이에만 국한되어 설립되거나 수정되는 것이 아니라 전체구조의 관점에서 설정되는 모델이라고 생각합니다. --오티움


5. 웹 사이트


"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>