선형 함수(linea function)와 비선형 함수(non-linear function)의 차이!
·
프로젝트 관련 조사/알고리즘
출처: http://sdolnote.tistory.com/entry/LinearityNonlinearityFunction 공과대학을 입학하고 수업을 들을 때, 가장 많이 듣는 말 중 하나는 선형(Linearity)과 비선형(Non-linearity)일 것이다. 선형이라는 것은 직선이 아닐 지라도 직선의 특징을 가지고 있다는 것이고 여기서 말하는 직선의 특징은 중첩의 원리(principle of superposition)또는 선형성의 원리(Linearity principle)이다. 이런 선형성이라는 말은 함수에 적용이 될 수도 있고, 선형으로 결합되어있는 어떤 것에도 적용이 될 수 있다. 여기서 선형으로 결합되어 있다는 어떤 것중에 대표적인 예는 선형 상미분방정식일 것이다. 이것에 대해서는 먼저 선형함수에..
Gradient Descent 탐색 방법
·
프로젝트 관련 조사/알고리즘
출처: http://darkpgmr.tistory.com/133 기본적인 함수 최적화(optimization) 방법 중 하나인 gradient descent 방법에 관한 글입니다. Gradient descent 방법은 미분의 개념을 최적화 문제에 적용한 대표적 방법 중 하나로서 함수의 local minimum을 찾는 방법 중 하나입니다. Gradient descent 방법을 다른 말로 steepest descent 방법이라고도 부릅니다. 1. Gradient descent 방법의 직관적 이해 자신이 한치앞도 잘 안보이는 울창한 밀림에 있을 때 산 정상으로 가기 위한 방법은 간단합니다. 비록 실제 산 정상이 어디에 있는지는 모르지만 현재 위치에서 가장 경사가 가파른 방향으로 산을 오르다 보면 언젠가는 산 ..
컨벌루션 신경망 ( Convolutional Neural Networks, CNN ) ~ 개요
·
프로젝트 관련 조사/알고리즘
출처: http://m.blog.naver.com/msnayana/220776380373 컨벌루션 신경망 ( Convolutional Neural Networks, CNN ) ~ 개요​​딥러닝 알고리즘중에서 영상과 음성에서 좋은 성능을 보이는 알고리즘으로 CNN이 있다.이 합성곱신경망(컨벌루션 신경망,CNN)은 전처리를 추가한 다층퍼셉트론의 한종류이지만​2차원 데이타의 입력이 용이하고 훈련이 용이하고 적은 매개변수라는 장점이 있어 많이 사용된다.​또한최근엔 CNN과 거의 비슷한 합성곱 심층 신뢰신경망(Convolutional Deep Belief Network, CDBN)이 개발되어 이 알고리즘의 활용성이 많이 높아 진상태이다.​단순하게 표현하면CNN은 신경망에 기존의 필터기술을 병합하여신경망이 2차원 ..
[경로탐색 알고리즘] 큐를 이용한 너비우선탐색 알고리즘(BFS - Breath First Search) [출처] [경로탐색 알고리즘] 큐를 이용한 너비우선탐색 알고리즘(BFS - Breath First Search)|작성자 Android Kang
·
프로젝트 관련 조사/알고리즘
출처: http://blog.naver.com/powersilk/10168065952 [경로탐색 알고리즘]큐를 이용한 너비우선탐색 알고리즘(BFS - Breath First Search) O. 들어가며 경로탐색 또는 길찾기 알고리즘을 공부할 때에 가장 기본적으로 이해하고 알고있어야 할 알고리즘은 깊이우선탐색(Depth First Search)과 너비우선탐색(Breath First Search)이다. 물론 실제 게임에서의 경로찾기는 A*알고리즘 등 최단경로 찾기 알고리즘을 사용한다. 혹은 네비게이션 맵을 이용하여 그래프를 구성하고 경로찾기를 구현하는 경우도 많이 있다. 이유는 A* 알고리즘이나 네비게이션 방법이 탐색 속도에서 훨씬 빠르기 때문이다. 이외에도 유전알고리즘이나 뉴럴네트워크와 같은 휴리스틱 알고..
[C++] [STL] vector 벡터 정리 및 예제
·
프로젝트 관련 조사/알고리즘
출처: http://hyeonstorage.tistory.com/324 vector 컨테이너는 대표적인 시퀀스 컨테이너로 배열과 비슷하여 사용이 쉬우며 자주 사용된다. vector는 임의 접근 반복자(Random Access Iterator)를 지원하는 배열 기반 컨테이너이다.vector의 가장 큰 특징 중 하나는 원소가 하나의 메모리 블록에 연속하게 저장된다는 것이다. 그렇다 보니 원소가 추가되거나 삽입될 때 메모리 재할당이 발생할 수 있고 상당한 비용을 지불하게 된다.그래서 메모리 할당 크기를 알 수 있게 capacity() 함수를 제공하며 한번에 메모리를 할당할 수 있는 reserve() 함수도 제공된다. 원소가 연속하게 저장되므로 [] 연산자 또는 at 으로 읽기에는 빠르지만 insert(), e..
[C++] [STL] deque 정리 및 예제
·
프로젝트 관련 조사/알고리즘
출처:http://hyeonstorage.tistory.com/325 deque 컨테이너는 vector 컨테이너와 기능과 동작이 비슷한 컨테이너로 vector의 단점을 보완하는 몇가지 특징을 갖는다.deque도 vector 컨테이너와 같이 시퀀스 컨테이너이며 배열 기반 컨테이너이다. [C++/STL] - [STL] vector 벡터 정리 및 예제 템플릿 형식 templateclass deque T는 deque 컨테이너 원소의 형식 생성자 deque dqdq는 빈 컨테이너이다. deque dq(n)dq는 기본값으로 초기화된 n개의 원소를 갖는다. deque dq(n,x)dq는 x 값으로 초기화된 n 개의 원소를 갖는다. deque dq(dq2)dq는 dq2 컨테이너의 복사본이다. deque dq(b,e)d..
[알고리즘] Backtracking (백트래킹)
·
프로젝트 관련 조사/알고리즘
출처:http://janghw.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Backtracking-%EB%B0%B1%ED%8A%B8%EB%9E%98%ED%82%B9 백트래킹정의 : 여러 해들 중에 조건에 맞는 모든 해를 찾는 알고리즘. 알고리즘1. 후보 해를 선택한다.2. 조건에 따라 후보 해에 적절성 검사를 시행한다. 통과하지 못하면 지금 현재 선택한 후보 해를 버리고 1로 돌아가 후보 해를 다시 선택한다.3. 적설성 검사가 통과한 경우 이 후보 해가 문제의 해가 되는지 검사한다. 검사를 통과하면 이것이 문제의 해이고, 검사를 통과하지 못하면 1로 돌아가 후보 해를 계속해서 선택한다. 백트래킹의 활용1. 미로 탈출로 찾기재귀함수를 통해 백트래킹으로 ..
[알고리즘] Dynamic Programming (동적 계획법)
·
프로젝트 관련 조사/알고리즘
출처:http://janghw.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Dynamic-Programming-%EB%8F%99%EC%A0%81-%EA%B3%84%ED%9A%8D%EB%B2%95 동적 계획법 정의 : 어떤 문제가 반복적이고 최적 하위구조로 이루어질때, 하위구조에 있는 부분 문제의 답을 기반으로 전체 문제의 답을 구하는 방법 최적 하위구조(Optimal Substructure)란 전체 문제의 답이 부분 문제의 답으로부터 만들어지는 구조를 말한다. 예를 들어 어떤 문제를 7개의 하위문제로 나눌 수 있을때, 7개의 하위문제의 답을 모두 얻어야 이 문제의 답을 구할 수 있다면 이 문제는 최적 하위구조를 갖추었다고 할 수 있다.분할정복과 비슷해..
[알고리즘] Divide and Conquer (분할정복)
·
프로젝트 관련 조사/알고리즘
출처:http://janghw.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Divide-and-Conquer-%EB%B6%84%ED%95%A0%EC%A0%95%EB%B3%B5 분할정복정의 : 분할정복 알고리즘은 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘이다. 알고리즘을 설계하는 요령(1) Divide : 문제가 분할이 가능한 경우, 2개 이상의 문제로 나눈다.(2) Conquer : 나누어진 문제가 여전히 분할이 가능하면, 또 다시 Divide를 수행한다. 그렇지 않으면 문제를 푼다.(3) Combine : Conquer한 문제들을 통합하여 원래 문제의 답을 얻는다. 문제를 제대로 나누면 Conquer..
[알고리즘] Greedy Algorithm (탐욕 알고리즘)
·
프로젝트 관련 조사/알고리즘
출처: http://janghw.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Greedy-Algorithm-%ED%83%90%EC%9A%95-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 탐욕 알고리즘정의 : 미리 정한 기준에 따라서 매번 가장 좋아 보이는 답을 선택하는 알고리즘 동적 계획법과 마찬가지로 최적화 문제를 푸는데 사용한다.근시안적으로 해를 구할 당시에 가장 최적인 해를 구한다.탐욕 알고리즘은 동적 계획법보다 효율적이긴 하지만 동적 계획법처럼 반드시 최적의 해를 구해준다는 보장을 하지 못한다. 알고리즘1. 해 선택 (Selection Procedure) : 지금 당시에 가장 최적인 해를 구한뒤, 이를 부분해 집합에 추가한..