분류 전체보기 461

[알고리즘] 동적 계획법 - 프로이드의 최단 경로 (Dynamic Programming - Floyd's Shortest Paths)

최단 경로를 찾는 두 가지 대표적인 알고리즘 중에 하나입니다. 다른 하나는 다익스트라 알고리즘이 있는데, 이는 탐욕법에서 알아봅니다. 프로이드의 알고리즘은 모든 점에서 모든 다른 점까지의 거리를 알아냅니다. 최단 경로 문제는 Optimization Problem입니다. 여러 가지 해답의 후보가 있고, 각 후보마다 값이 있고, 우리는 최적의 값을 찾아야 합니다. (여기서는 경로의 최솟값) 최단 경로의 문제에서 한 마디에서 다른 마디로 가는 최단 경로는 하나 이상이 있기 때문에, 여기서는 최단 경로 중 하나를 찾습니다. 1. 알고리즘 시작은 단순무식한 접근법 (Brute-Force)입니다. 한 정점에서 다른 정점으로 가는 모든 경로를 구한 후, 그 경로 중 최솟값을 찾는 방법입니다. 이때 경우의 수는 (n-..

[알고리즘] 동적 계획법 (Dynamic Programming)

1. 동적 계획법이란? DP (Dynamic Programming)는 코딩 테스트의 절반 이상을 차지하는 알고리즘이라 봐도 무방합니다. DP는 분할 정복과 매우 유사합니다. 하지만 분할 정복은 top-down 방식을 이용하고, DP는 bottom-up 방식을 이용합니다. 가장 작은 instance의 답을 먼저 구하여 저장하고, 필요하면 꺼내 쓰는 '동적 계획'입니다. 여기서 계획이란 문제 해결을 위한 배열(테이블)을 구축한다는 뜻입니다. DP 알고리즘의 개발 절차는 다음과 같습니다. 문제의 instance의 해답을 구하는 재귀 관계식을 세운다. (top-down approach, Divide and Conquer 방식) 작은 instance부터 해결하는 bottom-up 방법으로 전체 instance에 ..

[확률과 통계] CH03 - Probability and Statistics

두 가지 상황만 존재할 때, 성공의 확률이 p이면 E(x) = p, Var(x) = p(1-p)이다. Binomial Distribution 두 가지 상황만 존재함. n번 시도하고 확률은 p임 X = X1 + ... Xn P(X=x) = (n, x) p^x (1-p)^n-x n번 시도했을 때, x번 성공할 확률 E(x) = np, Var(x) = np(1-p) (n, x) = nCx임 Y = X/n이이고, E(x) = np, Var(x) = np(1-p)라면 E(y) = p, Var(y) = p(1-p)/n Geometric Distribution the probability value of xth success x번째에 성공할 확률 (계속 실패하다가) P(X=x) = (1-p)^x-1 * p E(x) ..

[확률과 통계] CH02 - Probability and Statistics

Random Variable : assigning a numerical value to each outcome of a particular experiment ex) 6.6이 나오면 500원을 줄게, 그러면 1/36 확률로 500원을 줌 S = {elec, mecha, misuse} elec fail = 200$, mecha fail = 350$, misuse fail = 50$ State Space : {50, 200, 350} 즉 state space는 numerical value들의 set임 !! pmf (Probability Mass Function) pmf of random variable X is a set of probability values pi -> pmf(X = xi) = pi xi ..

[머신러닝 - 이론] CNN 시각화, CNN 성능 향상, 전이 학습 (CNN Visualization, CNN Improve Performanc

1. CNN의 시각화 CNN에서는 두 가지의 시각화를 시도할 수 있습니다. 첫 번째는 Convolution Layer의 Kernel을 시각화하는 방법이고, 두 번째는 Conv Layer, Pooling Layer이 추출해주는 Feature Map을 시각화하는 방법입니다. 왜 시각화를 해야할까요? CNN의 성능은 뛰어나지만 왜 그런 의사결정을 했는지 설명하는 능력이 매우 떨어집니다. 방대한 수치 계산으로 의사결정이 이루어져서 의사결정에 대한 이유를 해석할 방법이 없기 때문입니다. 설명 가능을 달성하려는 많은 연구 결과가 있는데, 커널과 특징 맵의 시각화는 가장 낮은 수준의 방법입니다. 낮은 수준이지만 쉽게 적용이 가능하고, 많은 정보를 주기 때문에 애용하는 방법입니다. 코드와 실제 예시는 나중에 글로 쓰겠..

[머신러닝 - 이론] 합성곱 신경망과 컴퓨터 비전 (CNN : Convolution Neural Network, Conputer Vision)

1. CNN의 시작 컴퓨터 비전은 인공지능의 가장 중요한 연구 분야 중 하나입니다. 시각은 인간의 가장 강력한 인지 기능이고, 컴퓨터 비전은 인간의 시각 기능을 모방합니다. 그렇다면 인간의 시각 기능이 어떻게 작동하는지를 먼저 알아야 합니다. 여러분들은 지금 이 글에 집중하고 계실 겁니다. 그러면 옆에 있는 침대, 책상, 책들도 보이실 텐데 흐릿하죠. 결국 시각은 집중하고 있는 field에만 명확히 인식할 수 있습니다. 실제로 시각 피질 안에 많은 뉴런들이 있는데, 어떤 뉴런은 수평선의 이미지에만, 어떤 뉴런은 수직선의 이미지, 또 다른 애는 다른 각도의 선분에만 반응합니다. 또 어떤 뉴런은 큰 수용장을 가져서 더 복잡한 패턴에 반응합니다. 즉 결론적으로 뉴런들은 각기 집중하는 field가 있고, 이 f..

[머신러닝 - 이론] 지금까지의 내용 정리

지금까지 내용을 간략히 정리하고 가겠습니다. 인공지능 : 인간의 지능이 가지는 학습, 추리, 논증 따위의 기능을 갖춘 시스템 인공지능은 강한 인공지능과 약한 인공지능으로 나뉜다 인공지능의 접근 방법 과학적 : 인간의 지능을 충분히 연구한다음 그 원리를 충실히 모방하는 기계 제작 공학적 : 쓸만한 지능 기계를 만들 수 있다면 인간의 지능 원리를 따르지 않아도 됨 규칙 기반 방법론 : 사람이 사용하는 규칙을 수집하여 프로그래밍(if-else) 하지만 규칙을 위반하는 샘플이 발생함 기계 학습 방법론 : 충분한 데이터를 수집 -> 기계가 스스로 규칙을 찾아내 학습하는 방법 딥러닝 방법론 : 기계 학습은 특징까지 수작업으로 알아내야하지만, 딥러닝은 특징마저 스스로 알아냄 머신러닝의 데이터의 중요성 데이터가 없으면..