글로 남기는것과, 사진 찍는것, 동물을 좋아해요. Lisp, Emacs, Scala, FP 에 관심이 많습니다.

Dijkstra, Heap, Red-Black Tree

November 23, 2014 Blog

Dijkstra's Shortest-Path Algorithm BFS 는 undirected graph 에서 최단 경로를 찾지만, 이건 모든 edge 의 길이가 1일때만 그렇다. 다익스트라(dijkstra, 데이크스트라) 알고리즘은 directed graph 에서 non-negative length 에 대한...

Machine Learning, Week 7

November 22, 2014 Blog

이번시간에 Support Vector Machine, SVM 을 배운다. Optimization Objective 먼저 직관을 얻기 위해 logistic regression 의 sigmoid function 을 좀 보자. (http://blog.csdn.net/abcjennifer) y = 1 이면 0^Tx >>...

하스켈로 배우는 함수형 언어 5

November 21, 2014 Blog

키보드를 읽거나 화면에 무엇인가 쓰는 intertactive program 은 side-effect 를 만듭니다. 그런데, 하스켈은 side-effect 가 없지요. 그럼 입출력이 불가능한 것일까요? 당연히 그렇지 않습니다. IO 모나드 를 사용할겁니다. pure...

하스켈로 배우는 함수형 언어 4

November 19, 2014 Blog

이번시간엔 모나드를 배웁니다. 네. 올것이 왔습니다. 간단한 파서를 구현하는 것 부터 시작해 보겠습니다. What is a Parser Parser (파서) 란 텍스트 조각을 분석하여 syntaxtic structure 를 만들어 내는...

Process Mining, Week1

November 18, 2014 Blog

매 10분마다 새롭게 생성되는 데이터의 양은 2003년까지의 모든 데이터를 합한 것보다 더 많다고 한다. 이 데이터 속에는 무궁무진한 가치가 있다고 하여 어떤 사람들은 데이터를 기름이라 비유하기도 한다. Data...

Graph Search and Connectivity

November 15, 2014 Blog

기본적인 그래프 탐색 방법 DFS, BFS 에 대해 배우고 약간씩 응용하여 shortest path, conncected components, topological order, strongly connected components 등을 찾는 방법을 배운다. 마지막 부분에선 웹이 어떻게...

Machine Learning, Week 6

November 14, 2014 Blog

지난시간엔 back propagation 구현해 보고 여기에 적용할 수 있는 소소한 것들 random initialization 과 gradient checking 등도 알아 보았다. 머신러닝을 단순히 아는것과, 실전에서 사용할 수 있다는 건 큰...

하스켈로 배우는 함수형 언어 3

November 12, 2014 Blog

하스켈에서 repetition (반복) 은 recursion 을 통해 표현됩니다. 간단한 재귀부터 시작해서 mutual recursion 까지 알아보고, Higher order function (특히 fold) 에 대해 배운 뒤 적용을 위해 church numerals...

Foundations of Data Analysis, Week1

November 12, 2014 Blog

edx 수업. R 을 이용해 실제 데이터에 학습한 통계 이론들을 적용하는 수업이다. edx 에서 제공하는 discussion board 대신에 piazza board? 이런것도 쓰고, lab 전에 비슷한 질문을 하는 pre-lab...

Graphs, The Contraction Algorithm

November 8, 2014 Blog

이번엔 지난시간에 배운 randomized algorithm 을 새로운 domain 인 그래프에 적용해 보고, contraction algorithm 이 무엇인지 알아본다. Graphs 용어 정리부터 시작하자. edge (E) 는 pair of vertices 와...

Randomized Selection

November 7, 2014 Blog

Intuition 중복이 없는 n 개의 원소를 가진 배열에서 i 번째로 큰 원소를 얻고 싶다고 하자. 간단한 방법은 먼저 정렬을 한 뒤 거기서 i 번째 원소를 고르면 된다. 이...

Machine Learning, Week 5

November 6, 2014 Blog

지난시간엔 왜 neural network 를 사용하는지 알아보았다. 데이터의 차수가 매우 클 때 logistic regression 으로는 성능이 떨어지거나 overfitting 의 문제가 발생할 수 있다는 사실을 알게 되었고, 마지막엔 multi...

Functional Programming in Scala, Chapter 7

November 5, 2014 Blog

7주차에 걸친 대장정의 마지막이다. 이번시간에는 stream, lazy evaluation 에 대해 배우고 이걸 이용해 길이가 무한인 컬렉션을 만들어 보기도 하고 계산을 늦추는 것을 다양한 예제에 적용해 본다. Structural Induction...

하스켈로 배우는 함수형 언어 2

November 5, 2014 Blog

이번시간엔 list comprehension 을 배웁니다. 수학에서는 집합의 원소를 이용해 새로운 집합을 만들 때 사용하는데요, In mathematics, the comprehension notion can be used to construct new sets from old...

Intro to Computational Thinking and Data Science 1

November 4, 2014 Blog

Simulation Models Simulation attempts to build an experimental device called model Simulation model is descriptive, not prescriptive 직역하자면 시뮬레이션은 실험가능한 도구인 모델을 만들어낸다. 모든 모델이 정확하진 않지만, 다시...

Divide and Conquer

October 29, 2014 Blog

Divide and Conquer (분할 정복) 을 배운다. merge, quick sort 를 배우고 이 과정에서 왜 combine 단계가 O(n) 이 되어야 하는지 알아본다. 뒷부분에서는 Big O 뿐만 아니라 master...

하스켈로 배우는 함수형 언어 1

October 27, 2014 Blog

먼저 이 글은 edx 의 FP101.x (Introduction to Functional Programming) 수업을 기반으로 작성되었음을 알려드립니다. 시작에 앞서서, 하스켈을 설치하려면 Haskell Platform 을 설치하신 후 터미널에서 ghci 를 입력하면 됩니다....

Functional Programming in Scala, Chapter 6

October 24, 2014 Blog

지난 시간에는 referential transparency (참조투명성) 과 함수형 언어에서의 귀납법인 structural induction 에 대해서 배우고, 몇 개의 예제를 증명했었다. 이번 시간에는 스칼라의 컬렉션인 Seq, Set, Map 을 알아보고 마지막...

Machine Learning, Week 4

October 23, 2014 Blog

지난 시간에는 실리콘 밸리의 머신러닝 개발자들이 귀한대접을 받는다는 훈훈한 덕담으로 강의가 끝났다. 이번시간에는 뜬금없이 Neural Network (신경망) 을 건들다가 놀랍게도 그것이 logistic regression 과 연관이 있으며 n 이...

Machine Learning, Week 3

October 15, 2014 Blog

지난 시간엔 Regression 을 해결하기 위해 graident descent 알고리즘을 도입했었다. learning rate, vectorization 등에 대해서 알아 보기도 했고. 이번시간엔 classification 과 regulrzation 에 대해서 배워 본다. 이 수업이...

Functional Programming in Scala, Chapter 5

October 14, 2014 Blog

지난주엔 Scala 가 리스코프 치환 원칙 을 지키기 위해 어떻게 Variance(공변성) 을 문법적으로 지원하는지 알아보았다. 직접 List 컨테이너를 구현해 보면서 함수의 인자는 Covariant, 리턴타입은 Contravariant 란 것도 알게...

Analysis of Algorithms

October 11, 2014 Blog

Analysis of Algorithms, by Kevin Wayne, Robert Sedgewick in Coursera 알고리즘을 분석해야 하는 이유는 (1) Predict performance (2) Compare algorithms (3) Provide guarantees (4) Understand theoretical basis 그...

Programming Language, Week1

October 10, 2014 Blog

Programming Language by Dan Grossman, Coursera Coursera PL 클래스인데 과제 마감기한도 까다롭고, 동료평가도 있고, 여러모로 조금 빡세다. 유일한 낙은 언어의 다양한 특징들을 탐구하기 위해 ML 을 사용하고 오오...

Machine Learning, Week 2

October 8, 2014 Blog

Machine Learning by Andrew Ng, Coursera Linear Regression with Multiple Variables Mutiple Features 변수가 적을때는 Hypothesis 가 간단하다. 많으면 어떻게 될까? Feature 가 N+1 개라면, http://bt22dr.wordpress.com 편의상 x_0...

Functional Programming in Scala, Chapter 4

October 7, 2014 Blog

2014-10-07, Functional Programming in Scala, Coursera Types and Pattern Matching Functions as Objects In fact function values are treated as objects in Scala trait Function1[A, B] { def...