분류 전체보기465 [자료구조] Binary Search Tree(BST) - 참조 문헌 및 사이트(Reference) Data Structure : A Pseudocode Approach with C Data Structure and Algorithm in C++ 이번 글에서는 BST, 이진 탐색 트리에 대해서 알아보겠습니다. 이진 탐색 트리는 이진 트리이면서, 아래와 같은 성질을 갖고 있습니다. 1. 루트 노드의 왼쪽 서브트리의 모든 Key는 루트 노드의 Key보다 작다. (All of left subtree = root) 3. 각 서브트리는 그 자체로 이진 탐색 트리이다. 여기서 Key는 노드의 데이터가 될 수도 있고, 다른 기준이.. 2020. 9. 9. Shallow Neural Networks 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 첫 번째 강의 Neural Networks and Deep Learning를 듣고 정리한 내용입니다. (Week 3) 이번 글에서는 Forward Propagation과 BackPropagation을 사용한 1개의 hidden layer를 가진 Neural Network를 알아보자. [Key Concept] - Understand hidden units and hidden layers - Be able to apply a variety of activation functions in a neural network - Build your first forward and backwarnd propagatio.. 2020. 9. 8. [Python/파이썬] 클래스(Class) - 참조 문헌 및 사이트(Reference) docs.python.org/3/tutorial/index.html Byte of python - Swaroop C H 이번글에서는 파이썬에서의 클래스 Class에 대해서 한 번 알아보도록 하겠습니다. 클래스는 객체 지향 프로그래밍을 위한 도구로 사용되며, 객체를 정의하는 설계도라고 이해하면 될 것 같습니다. 사용되는 용어를 먼저 알아보겠습니다. 여기서 클래스(Class)와 객체(Object)라는 단어가 있는데, 클래스(Class)는 사용자가 새로운 타입(형식)을 정의하는 것이며, 객체(Object)는 클래스의 인스턴스(instance), 즉, 새로운 형을 사용해서 만든 것을 의미합니다. 만약 Person이라는 클래스가 있을 때, 이 클래스를 가지고 Jun이라.. 2020. 9. 6. [Machine Learning] Gradient Descent with Large Datasets 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. 이번 강의에서는 대규모의 머신러닝에 대해 알아보겠다. 알고리즘이지만, 빅데이터 관점에서 보는 것이다. 최근 5~10년 전 머신러닝을 되돌아보면, 최근 학습알고리즘이 훨씬 더 높은 성능을 보이는 이유 중의 하나는 훈련할 수 있는 엄청난 양의 데이터 때문이다. 이번에는 이러한 대규모의 데이터가 있을 때, 처리하는 알고리즘에 대해서 알아보자. - Learning With Large Datasets 우리는 이전에 이미 머신러닝의 성능을 높이는 방법 중의 하나가 더 많은 데이터를 학습하는 것(Low Bias일 경우)이라는 것을 배웠었다. 위와 같은 비교를 통해서 머신러닝에서 가장 좋은 알고리즘이 중요.. 2020. 9. 5. [자료구조] 우선순위큐(priority queue), 힙(heap) - 참조 문헌 및 사이트(Reference) Data Structure : A Pseudocode Approach with C Data Structure and Algorithm in C++ 이번 글에서는 우선순위큐(Priority Queue)에 대해서 알아보겠습니다. 우선순위큐도 C++ STL 헤더에서 제공하는 컨테이너이며, 큐와 동일하게 push, pop, top이라는 연산이 있습니다. 다만, 일반 큐와는 다르게 동작합니다. 큐에서는 제일 먼저 들어왔던 데이터가 제일 먼저 삭제가 되었지만, 우선순위큐에서는 우선순위가 현재 우선순위큐 안에서 우선순위가 가장 높은 데이터가 먼저 삭제가 됩니다. 만약 값이 클수록 우선순위를 갖는 우선순위큐에 [ 8 78 19 45 23 56 32 ] 의 순서로 데이터를 삽.. 2020. 9. 4. [Machine Learning] Exam 8 (Week 9) 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. Exam 8에서 구현해야 하는 과제는 다음과 같습니다. - estimateGaussian.m : 가우시안 분포를 갖는 모델의 평균과 분산을 반환하는 코드 - selectThreshold.m : Anomaly Detection에서의 최적의 Threshold를 찾는 코드 - cofiCostFunc.m : Collaborative filtering의 Cost Function 작성 [estimateGaussian.m] 가우시안 분포를 갖는 X 행렬의 평균과 분산을 구하면 됩니다. 평균과 분산을 구하는 공식은 아래와 같습니다. 전체 코드입니다. function [mu sigma2] = estimate.. 2020. 9. 4. [Machine Learning] Recommender Systems 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Recommender System 이번 시간에는 현업에서 많이 주목받고 사용되는 추천시스템에 대해서 알아보자. 다음과 같은 영화 별점을 예측하는 예제를 살펴보자. 사용자들은 별점 0개에서 5개까지 사용해서 영화를 평가한다. 그리고 아래 4개의 parameter를 사용한다. - \(n_u\) = 유저의 수 - \(n_m\) = 영화의 개수 - \(r(i, j)\) = j 유저가 영화 i를 평가했는지에 대한 여부. 평가했으면 1, 안했으면 0이다. - \(y^{(i, j)}\) = j 유저가 영화 i에 평가한 별점이다. 0 ~ 5까지의 값을 가지며, 이 값은 \(r(i, j)\) = 1 일 .. 2020. 9. 4. [자료구조] 트리(Tree) - 참조 문헌 및 사이트(Reference) Data Structure : A Pseudocode Approach with C Data Structure and Algorithm in C++ 이번 글에서는 비선형(non-linear) 자료구조인 트리(Tree)에 대해서 알아보겠습니다. 나중에 그래프에 대해서도 글을 쓰겠지만, 트리는 그래프에 속하는 자료구조입니다. 트리는 위 그림과 같이 생겼습니다. 트리는 노드(node)라고 불리는 요소들과 방향성이 있는 브랜치(branch)로 구성되어 있으며, 이 브랜치는 각 노드를 연결시켜 주는 역할을 합니다. 노드와 연결된 브랜치의 수는 노드의 degree(차수)라고 하며, 만약 노드를 향하는 브랜치라면 indegree, 노드에서 나오는 브랜치라면 outdegree.. 2020. 9. 3. [Machine Learning] Anomaly Detection 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다.이번에는 Anomaly Detection(이상탐지)에 대해서 이야기해볼 것이다.Anomaly Detection은 머신러닝에서 일반적이며, 합리적으로 사용된다. 그리고 이것은 주로 unsupervised problem의 한 방법이지만, superivsed learning problem의 측면도 가지고 있다. 아래 예시를 통해서 Anomaly Detection이 무엇인지 살펴보도록 하자.- Density Estimation 여기 항공기 엔진 제조업체가 있고, 항공기 엔진을 조립이 완료되었을 때, 품질을 테스트한다고 가정해보자.그 테스트 중에 우리는 항공기 엔진의 기능을 측정하는데, 예를 들어서 엔.. 2020. 9. 2. [자료구조] Queue(큐), Deque(덱) - 참조 문헌 및 사이트(Reference) Data Structure : A Pseudocode Approach with C Data Structure and Algorithm in C++ 이번 글에서는 선형 리스트이며, 한쪽에서는 데이터의 삽입이 이루어지고, 반대편쪽에서는 데이터의 삭제만 이루어지는 큐(Queue)와 양쪽 끝에서 모두 데이터의 삽입과 삭제가 가능한 덱(Double-End Queue)에 대해서 알아보겠습니다. Queue 큐 우선 큐부터 알아보도록 하겠습니다. 큐의 기본 컨셉은 위 그림과 같습니다. rear라는 한쪽 끝에서는 insert만 이루어지고, front라는 다른 한쪽 끝에서는 remove만 이루어집니다. 즉, 스택과는 반대로 FIFO(First in First out) 구조를 가.. 2020. 9. 1. 이전 1 ··· 39 40 41 42 43 44 45 ··· 47 다음