본문 바로가기

전체 글

[컴퓨테이션 이론] Turing Machine_정의 튜링머신이란? 제한적이지 않은 메모리에서 infinite한 tape을 사용하는 모델이다 .symbol에 읽고 쓸 수 있는 tape head를 가지고 이 tape head는 tape 위를 좌우로 움직인다. 튜링머신의 특징 1. 튜링 머신은 좌우로 움직이며 읽고 쓸 수 있다. 2. 테이프(tape)는 무한하다. 3. reject state나 accept state를 만나면 즉시 종료한다.만약 만나지 않으면, 무한 루프를 돈다. 예시 B = { w#w | w ∈ {0,1}* } language B = { w#w | w ∈ {0,1}* } 이 있다고 하자. input 011#011을 accept한다는 것을 어떻게 보일 것인가? #의 앞부분과 뒷부분을 왔다갔다하면서 같은지 다른지 비교할 것이다. 처음에 0을 보면.. 더보기
[인공지능] 자연 언어 처리 목차 1) 자연언어 처리의 분석 단계 - 형태소분석, 구문분석, 의미분석, 실용분석 2) 실용 분석 단계의 설명 3) 톰스키가 정의한 문법 4가지 1) 자연언어 처리의 분석 단계 1-1. 형태소 분석 단계 - 명사 , 조사 따위로 분리하는 단계이다. - 어휘 분석 단계이다. - 영어같은 경우는 형태소분석 단계가 해결이 되어있다 . - 형태소 분석기를 열심히 개발하고 있다. - 우리나라에서 제일 좋은 형태소 분석기는 오픈되지 않았다.(2017기준) 1-2. 구문 분석 단계 - 형태소들이 결합하여 문장이나 구절을 만드는 구문 규칙에 따라서, 문장 내에서 각 형태소들이 가지는 역할을 분석하는 단계이다. EX) 직장인은 휴일을 쉰다 (직장인은 주어, 쉰다는 서술어) 1-3. 의미 분석 단계 - 결과를 해석해서 .. 더보기
[인공지능] 패턴인식(식별,군집화,K-means Clustering) 목차 1) 식별 2) 군집화 3-1) K-means Clustering 정의 3-2) K-means Clustering 과정 3-3) K-means Clustering 장단점 1. 식별 식별이란, 패턴이 어느 카테고리에 속하는 가를 결정하는 과정이다. 신호를 전처리해서 노이즈를 제거해야하고 중요한 정보를 강화한다. 내가 인식할 수 있는 문자를 정규화한다. 앞에서 배운 식별방법은 두가지가 있다. 1) 통계적 / 결정이론적 접근방법 2) 구조적/ 언어이론적 접근방법 신경망을 이용했을 경우, 내가 인식했을때 어느 카테고리로 가야하는 지가 정해져 있다. 우리가 실제로 많은 부분이 총 몇개의 클래스가 있는 지 모르는 경우가 발생한다. 그때 사용하는 알고리즘이 군집화이다. 2. 군집화 (Clustering) 패턴 .. 더보기
[인공지능] 학습과 신경회로망 목차 1) 기계적 학습 2) 예제에 의한 학습 3) 개념 학습 4) 퍼셉트론 1-1) 기계적 학습 새로운 지식을 저장을 통해, 이후의 똑같은 상황에서는 먼저 행한 계산을 반복하지 않는다. 기계적 학습이란, 단순히 저장된 결과를 검색하여 사용하는 학습이다. 기계 스스로 대량의 데이터로부터 지식이나 패턴을 찾아내어 학습하고 예측을 수행 하는 것이다. 1-2) 기계적 학습의 매커니즘 기계적 학습은 문제와 해를 기억하는 방법을 사용한다. input,output 대량의 데이터를 넣어준다. input값을 넣으면 컴퓨터가 알아서 프로그래밍 해서 output값을 출력하도록 하는 것이다 . - Machine Learning의 예 (y = 2x) 학습 데이터 : (1,2) , (2,4) , (3, 6) , (4, 8) 컴.. 더보기
[안드로이드] 안드로이드에서 페이스북(Facebook) 페이지 연동 인트로 안드로이드에서 페이스북 페이지를 연동하는 방법을 알아보겠습니다. 연동하는 방법의 흐름은 다음과 같습니다. 목차 1) 앱에서 인터넷 연결하기 2) OpenFacebookPage() 함수 만들기 3) Oncreate에서 호출하기 4) 실행해보기 페이스북(Facebook) 페이지 연동하기 안드로이드 앱에서 페이스북 페이지로 연결시키는 방법은 매우 간단합니다. 1) 앱에서 인터넷 연결하기 인터넷 연결을 요하는 것이므로 manifest 파일에 user - permission을 걸어주어야 한다. 2) OpenFacebookPage() 함수 만들기 아래와 같은 코드로 원하는 곳에 OpenFacebookPage()를 만들어줍니다. protected void OpenFacebookPage(){ String fac.. 더보기
[C++] 연산자 오버로딩이란 인트로 안녕하세요. 오늘은 연산자 오버로딩 개념과 형태에 대해서 글을 써보겠습니다. 목차 1. 연산자 오버로딩의 개념 2. 형태 3. 코드 1. 연산자 오버로딩의 개념 연산자라는 것도 하나의 함수로 생각하여 이 함수를 오버로딩한다는 개념이다. 기존의 정의되어있는 데이터 타입을 우리가 만든 연산자에도 대해서 동작하게 하는 것이다. 즉, 연산자 오버로딩은 객체 지향 프로그래밍(OOP)에서 다른 연산자들이 함수 인자를 통해 구현되는 것을 말한다. 예를 들어, 덧셈 연산자는 정수가 들어올때도 동작하고, 실수가 들어올때도 동작하게 만들어져있다. 이러한 덧셈연산자를 우리가 정의한 데이터 타입에 대해서도 동작하게 하는것이 연산자 오버로딩 이다. 대부분의 연산자는 자식까지 상속이 된다. 결국, 내가 만든 데이터 타입이.. 더보기
[안드로이드] Firebase 데이터베이스 이용하기 인트로 1) Firebase 데이터베이스 구축하기 2) Firebase 데이터베이스에서 내 데이터 가져오기 1) Firebase 데이터베이스 구축하기 1. 상단 메뉴바 Tools에서 Firebase을 선택합니다. 2) Realtime Database을 선택합니다. 3) 하라는 대로 따라서 구축하면 됩니다. 4) Connect your app to Firebase 를하면 아래와 같은화면이 나오고, 'Connect to Firebase'를 눌러줍니다. 5) 버튼 계속 클릭 위의 단계가 완료되면 "Connecting app to Firebase"라는 메세지가 뜰것이고, 이 메시지가 뜬다면 성공 한것입니다. 'Add the Realtime Database to your app' 버튼을 클릭하고 적용시킵니다. 6.. 더보기
[인공지능] 패턴 인식 목차 1) 패턴인식 시스템 구조 2) 패턴인식 (식별, 군집화) / 클릭시 이동 패턴인식 시스템 구조 순서 : 관측 > 전처리 > 분할 > 정규화 > 특징추출 > 식별 1. 관측 이과정에서는 표본화(sampling)와 양자화(quantization)를 거쳐, 아날로그 신호(0~255)를 디지털신호(0~1)로 변환한다. 양자화는 값의 구간을 분할하여 해당 구간에 대한 대표값을 부여하기 때문에 손실이 발생한다. 2. 전처리(pre-processing) 전처리는 노이즈(잡음)를 제거하는 것이 중요하다. 이 잡음은 규칙적으로 일어날 수 도있고 불규칙적일수도있다. 전처리 하고나면 분할 과정을 거쳐야 한다. 3. 분할 분할이란, 입력된 신호로부터 인식 대상이 되는 패턴을 분리해내는 과정이다. 패턴이 고립되어있거나,.. 더보기