COMPUTER(5)
-
[백준 1197 | MST] 최소 스패닝 트리
풀이 최소 스패닝 트리를 구하는 데에는 크게 2가지 알고리즘 (크루스칼 알고리즘, 프림 알고리즘)이 알려져 있습니다. 위 문제는 최소 스패닝 트리의 가중치 값을 묻는 기본적인 문제이기 때문에, 개인적으로 구현하기 편했던 크루스칼 알고리즘을 사용하였습니다. 크루스칼 알고리즘을 사용하기 위해서는 먼저 상호 배타적 집합 (Disjoint Set)을 먼저 구현해야 합니다. 크루스칼 알고리즘은 프림 알고리즘 과는 다르게, 간선을 가중치 순으로 먼저 정렬한 후에, 가중치가 작은 간선부터 이어 나가면서, 해당하는 간선의 두 정점이 이미 같은 트리에 속해 있는지를 판단해야 합니다. 예를 들어, 1과 2를 잇는 가중치 1인 간선을 추가하려고 할 때, 1과 2를 이어주는 경로가 이미 존재한다면 해당 간선을 추가해서는 안된..
2020.06.27 -
KNN (K-Nearest Neighbor)
본 포스팅은 cs231n의 강좌를 정리한 글임을 서두에 밝힙니다. 캡쳐된 일부 강의 자료들은 CS231n에서 제공하는 PPT 슬라이드를 참조하였습니다. Definition 이전 포스팅에서 컴퓨터 비전 분야의 주된 과제 중 하나가 Image Classification 이라고 설명하였습니다. Image Classification 모델은 컴퓨터에게 인풋 이미지를 제공하면 그 이미지가 가지고 있는 개체의 이름(Label)을 출력합니다. 이를 수행하기 위해 다량의 데이터를 이용하여 컴퓨터를 학습시키는 "Data-Driven Approach"가 주로 사용되는데, KNN은 그 방법 중의 하나입니다. KNN은 굉장히 간단한 알고리즘입니다. KNN이라는 이름의 뜻 자체가 (K - Nearest Neighbor)이라는 뜻..
2020.03.29 -
Markov Decision Process (MDP)
Definition 마르코프 의사결정과정(Markov Decision Process. 이하 MDP)는 꽤 오랜 역사를 가지고 있지만, 실제적으로 인공지능 연구에 활용되기 시작한 것은 1990년대가 조금 지나서라고 합니다. 특히 의사결정과 그 보상에 대한 모델을 제시해 준다는 점에서 강화학습 (Reinforcement Learning)에 활용되고 있습니다. 강화학습은 컴퓨터가 환경과 상호작용하면서 받는 보상을 통해 더 나은 결정을 내릴 수 있도록 도와주는 모델입니다. 어떤 문제를 컴퓨터가 해결하기 위해서는 그 문제가 수학적으로 정의되어 있어야 하는데 MDP가 이 의사 결정 모델의 틀을 제공하여 수학적으로, 다시 말해서 코드화 할 수 있도록 도와줍니다. 보상은 컴퓨터(Agent)가 환경과 상호작용 하는 과정..
2020.03.28 -
Reinforcement Learning
보호되어 있는 글입니다.
2020.03.23 -
Probability For Deep Learning
위 포스팅은 위키피디아, 일반통계학 서적 등을 참고하여 정리한 글임을 서두에 밝힙니다. 머신러닝, 딥러닝 모델은 기존의 알고리즘과는 다르게 본질적으로 불확실한 요소들을 가지고 있습니다. 주어진 입력값을 통해 결과를 잘 '예측' 하는 것이 딥러닝 모델의 주 목표이기 때문에, 딥러닝 모델이 취하는 관점은 '확률과 통계'에 기반하게 됩니다. 이번 포스팅에서는 딥러닝 모델과 확률의 관계에 관한 몇 가지 인사이트를 살펴보도록 하겠습니다. Probability Conceps for Deep Learning 딥러닝 모델을 설계하다 보면, 딥러닝 모델 자체에 내재한 불확실성과 딥러닝 모델이 다루는 일상생활의 데이터에 대한 불확실성, 그리고 모델링 하려는 대상의 속성 자체에 내재된 여러 불확실성을 발견할 수 있습니다. ..
2020.03.21