본문 바로가기

분류 전체보기159

[컴파일러] - 컴파일러의 구조 1. 개요 컴퓨터에서 실행되는 모든 소프트웨어는 프로그래밍 언어로 작성된다. 그러나 프로그래밍 언어는 인간이 이해할 수 있는 수준의 언어로써, 기계어를 사용하는 컴퓨터는 이해할 수 없는 언어이다. 따라서 프로그래밍 언어로 작성된 프로그램은 컴퓨터에서 실행되기 위해 일정한 규칙에 따라 기계어의 형태로 번역되어야 하는데, 이러한 번역을 수행하는 시스템 소프트웨어를 컴파일러 (compiler)라고 한다. 예를 들어, 한국어를 모국어로 사용하는 사람이 영어로 작성된 글을 읽기 위해서는 영어를 한국어로 번역해야 한다. 이러한 상황에서 영어는 프로그래밍 언어이고, 한국어를 모국어로 사용하는 사람은 컴퓨터이며 한국어는 기계어이다. 그리고 영어를 한국어로 번역해주는 사람이나 소프트웨어는 컴파일러가 된다. 2. 컴파일러.. 2016. 1. 17.
[머신러닝] - 홉필드 네트워크(Hopfield Network) 1. 개요 1982년 물리학자 존 홉필드가 제안한 신경망의 물리적 모델로써 최적화, 연상기억 등에 사용된다. 2. 용어 정의 양극화(bipolarization): 0과 1로 표현된 데이터를 -1과 1로 변환하는 것 3. 알고리즘 구조 자기조직화맵(SOM)이나 인공신경망에서 가장 많이 사용되는 퍼셉트론(perceptron) 등은 연산이나 학습 과정에서 지속적으로 가중치(weight)가 변경되는 알고리즘이다. 다른 알고리즘과 다르게 홉필드 네트워크(Hopfield network)는 고정된 가중치를 이용하여 완전한 정보를 연상하는 차이점이 있다. 홉필드 네트워크는 학습 패턴에 대해 계산된 고정 가중치 행렬을 저장하고, 입력 패턴이 들어올 때마다 가중치 행렬을 이용하여 입력 패턴에 대한 학습 패턴을 연상하면 된.. 2016. 1. 10.
[머신러닝] - 자기조직화지도(Self-Organizing Map, SOM) 1. 개요 대뇌피질의 시각피질의 학습 과정을 모델화한 인공신경망으로써 자율 학습에 의한 클러스터링을 수행하는 알고리즘이다. 2. 용어 정의 클러스터링(clustering): 데이터의 유사성에 기초하여 데이터를 몇몇의 그룹으로 분류하는 기법 입력층(input layer): 입력 벡터를 입력받는 층 경쟁층(competitive layer): 입력 벡터의 특성에 따라 입력 벡터가 한 점으로 클러스터링 되는 층 가중치(weight): 인공신경망에서 가중치는 각 입력 값에 대한 입력 값의 중요도를 값을 말함 노드(node): 경쟁층에서 입력 벡터들이 서로의 유사성에 의해 모이는 하나의 영역 3. 알고리즘 구조 자기조직화지도 인공신경망 기법중에서 가장 단순한 알고리즘 중 하나이다. 알고리즘에서 입력 벡터와 경쟁층 .. 2016. 1. 5.