AI

    퍼지 시스템 - #1. 퍼지(Fuzzy)란?

    퍼지사고란? 이번 시간부터 퍼지 알고리즘에 대해 알아보도록 하겠습니다.퍼지알고리즘은 퍼지 집합론 또는 퍼지 논리라고도 많이 부르는데요.퍼지 알고리즘은 어떠한 문제에 답이 애매하거나 모호한 경우에어떻게 결론을 내릴까라고 생각하다가 만들어진 것이라고 생각하면 됩니다. 즉, 답이 1,0으로 나뉘는 이분법 적인 것이 아닌, 0~1까지 그 안에 속하는0.544, 0.81 과 같은 무수히 많은 숫자로 표현을 한다고 생각하시면 됩니다. 예를 들어봅시다.당신은 지금 친구들과 함께 목욕탕에 갔습니다. 다 같이 온탕에 들어갔는데, 친구들의 반응이 모두 다릅니다. 친구1 : 물이 너무 뜨거워.친구2 : 물 온도는 그렇게 뜨겁지 않은데?친구3 : 물이 뜨겁긴 하지만 그렇게 뜨겁진 않아.나 : 물이 굉장히 너무 뜨거워. 위의 ..

    유전 학습 - 2

    지난 시간에 이어서 계속해 보겠습니다. 우수한 유전자들을 선택하는 방법까지 알아보았습니다. 이번에는 그 선택된 유전자를 이용해서 !! 자손을 만들어야겠죠. 하지만 부모와 자식이 100% 동일한 유전자를 가질 수는 없는법 ! 그렇기에 유전자 조작을 통해 자손을 만들어야 합니다. 유전자 조작은 부모가 되는 유전자 정보를 바탕으로 복제와 일부 개량을 통해 자식 유전자를 만들어 낼 수 있습니다. 이런 유전자 조작 방법은 교차(crossover)와 돌연변이(mutation)이 있습니다. 부모해를 이용하여 자식해를 만드는 교차의 방법에는 1점교차, 다점교차, 균등교차, 순서교차, 싸이클 교차 등 여러가지 방법으로 자식해를 만들어 냅니다. 1점교차는 하나의 점을 기준으로 나누는 것입니다.예를 들어 부모 1과 부모2를..

    유전 학습 - 1

    유전 학습 이란? 유전이란 말은 수도 없이 들어 봤을 것이다. 살아오면서 부모에게 유전받았다. 라는 소리를 말이다. 이 글을 읽는 모든 분들도 부모나 조상에게 물려받은 특징들이 있을 것이다. 그렇기에, 아버지를 닮았다는 소리나 어머니를 닮았다는 소리를 들을 것이다. 유전 알고리즘은 이런 자연환경의 현상을 바탕으로 만들어진 알고리즘이라고 생각하면 된다. 유전 학습은 자연세계의 진화 과정을 기초로 하여 만들어진 알고리즘이다. 생물의 진화과정을 모방하여 문제를 해결하는 기법중의 하나이다. 유전이라 함은 부모에게 자녀가 어떠한 형질을 물려받는 것을 말한다. 그렇게 실제로 진화하면서 우성적으로 진화할 수 도 열성적으로 진화할 수도 돌연변이가 발생할 수 도 있는 문제이지만, 여기서 유전 학습은 점점 답을 찾기위한,..

    지도 학습 - 1

    1. 지도 학습이란?지도학습 혹은 감독학습이라고도 불립니다. 감독 혹은 지도받은 내뇽에 기반하여 학습하는 방법을 말합니다. 지도 학습은 말 그대로 옳고, 그름을 알려주는 지시자(교육자)가 존재하고, 그 옳고 그른 데이터에 의해 학습하는 방법입니다. 이런 의미에서 교사학습이라 불리기도 하는데요. 이와 반대되는 개념으로, 어떠한 학습 사례나, 학습 방법, 등을 지시/감독 받지 않고, 학습을 하는 방법을 비지시, 비감독 또는 비교사 학습이라고 합니다. 일반적으로 개인의 독학보다는, 개인에게 교사가, 지식을 전달해준 눈군가가 있다는 것은 더욱 효율적이고 정밀하게 학습할 수 있는 환경을 만들어 줍니다. 학습에 관해 교사에게 옳고, 그름을 배울 수 있으므로 다른 학습 방법보다 빠르고 정확한 학습을 할 수 있습니다...

    n-gram 출현빈도에 기초한 텍스트 데이터 학습 - 2

    지난 시간에 n-gram으로 나눠서 데이터를 저장하는 것 까지 하였다. 이번시간에는 그 데이터를 이용해서, 데이터의 빈도수를 확인하는 방법에 대해 알아본다. 저장된 데이터를 한 줄씩 읽어와서 그 데이터를 다음 데이터와 비교하여 중복된다면 갯수를 올리고, 그렇지 않다면 다음 데이터와 비교한다. 정리해보자. 1. n-gram data를 읽어와서 저장한다.2. n-gram data를 분석하기 편하게 qsort를 이용해 정렬한다.3. 중복된 데이터를 삭제하고 빈도수 계산한다.4. 결과를 다시 qsort를 이용해 정렬한다. #include#include#include #define MAX_N 10#define NGRAM_NUM 1000000#define NUMF 4 char data[NGRAM_NUM][MAX_N..

    n-gram 출현빈도에 기초한 텍스트 데이터 학습 - 1

    이번에는 n-gram 출현빈도에 기초한 텍스트 데이터 학습에 대해 알아 본다. 어떠한 글에서 여러 단어들의 빈도수는 그 단어의 글의 특징을 알 수 있는 좋은 정보이다. 하지만, 문장에서 어떠한 글을 뽑아내는 기준은, 그 전에 설명했던 방법 중 띄워쓰기나 여러가지 방법이 있다. 하지만 여기서는 가장 기초적으로 n개의 글을 하나씩 묶어서 빈도수를 확인해보는 가장 기초적인 방법에 대해서 알아보자. 먼저 데이터를 구하는게 어려울 꺼다. www.gutenberg.org 라는 곳에 접속해서, 아무 ebook 이나 다운받자. #include #define MAX_N 10 void setlastch(int n, char data, char lastdata[]); int main(){ FILE *pfile; char l..