2018년 11월 13일 화요일

DL/코세라 딥러닝 3.이진 분류기(Binary Classifier)를 만들기 위해서는?

이 글은 코세라 Andrew Ng 교수의 deep learning AI 강의를 듣고 기억하기 좋게 정리한 것입니다. 목표는 제 부모님도 이해하시도록 쉽게 쓰는 것입니다.

DL/코세라 딥러닝 2.지도학습(Supervised Learning)

이 글은 코세라 Andrew Ng 교수의 deep learning AI 강의를 듣고 기억하기 좋게 정리한 것입니다. 목표는 제 부모님도 이해하시도록 쓰는 것입니다.

2018년 11월 12일 월요일

DL/코세라 딥러닝 1.딥러닝 혹은 인공 신경망(Artificial Neural Network)이란?

이 글은 코세라 Andrew Ng 교수의 deep learning AI 강의를 듣고 기억하기 좋게 정리한 것입니다. 목표는 제 부모님도 이해하시도록 쓰는 것입니다.

2018년 8월 20일 월요일

DL/코세라 딥러닝 4.Gradient Descent(경사 하강법)

이 글은 코세라 Andrew Ng 교수의 deep learning AI 강의를 듣고 기억하기 좋게 정리한 것입니다. 목표는 제 부모님도 이해하시도록 쉽게 쓰는 것입니다.

DL/ Vectorization(벡터화) - 쓰는 중

Vectorization(벡터화)란 무엇인가?

벡터화란 어떤 수들, 혹은 행렬을 열벡터로 바꾸어주는 것을 말한다. 선형 변환의 일종이다. 가령 어떤 2x2 행렬 A를 벡터화해서 다음과 같이 행렬 vec(A)를 만들 수 있다.

2018년 8월 15일 수요일

자구/알고리즘(algorithm)이란? - 쓰는중

1. 개요

지난번에 아버지와 같이 카페에 갔는데 아버지께서 "알고리즘이 대체 정확히 뭐냐?"라고 물어보셨다. 간단히 대답하긴 했는데, 아무래도 좀 더 자세한 답변을 원하셨던 것 같아서 이 참에 정리해본다. 알고리즘의 정의는 어떻게 되고, 어떤 성질을 가지며, 어떻게 공부해야 할까?

2018년 8월 14일 화요일

자구/Big_O란?

1. 개요

어떤 도구든 사용하기 전에 이 도구가 얼마나 효과적인지를 알아야 다른 도구와 비교를 해서 도구 선택을 잘 할 수 있다. 알고리즘도 마찬가지다. 따라서 알고리즘 성능을 아는 것은 중요하다. 점근적 알고리즘 분석(asymptotic algorithm analysis)이란 어떤 알고리즘의 성능(얼마나 빨리 과제를 수행하느냐 == 시간 복잡도)을 분석할 때 사용되는 방법이다. 빅-오 표기법은 점근적 표기법의 대표적인 방법인데, 걸리는 시간의 상한선을 나타낸다. 빅-오와 다른 표기법들에 대해 알아보자.

2018년 8월 10일 금요일

자구/연결 리스트(Linked List) 만들기 2 - 쓰는중













참고
윤성우.(2012).열혈 자료구조.오렌지미디어

자구/기수 정렬(Radix Sort)

기수 정렬은 자리수를 기준으로 삼아 데이터들을 큐에 넣었다가 순서대로 꺼내서 정렬하는 방식이다. 기준으로 삼는 자리수를 계속 바꾸는데, 자리수를 모두 한 번씩 기준으로 삼으면 정렬이 완료된다. 기수 정렬은 사용할 수 있는 데이터가 제한적이지만, 퀵 정렬보다 더 빠르다. 분류상으로는 분배 정렬의 일종이다.

2018년 8월 9일 목요일

자구/퀵 정렬(Quick Sort)

1. 개요

퀵 정렬은 이름에서 알 수 있듯 굉장히 빠른 정렬이다. 퀵 정렬의 핵심은 피벗(pivot)이다.
피벗을 통해서 재귀적으로 함수를 만들면 데이터를 빠르게 정렬한다. 병합 정렬과 마찬가지로 분할 정복(divide and conquer) 방법을 통해 작동한다.

2018년 8월 7일 화요일

자구/힙(Heap)과 힙 정렬(Heap Sort)

1. 개요

힙은 완전 이진 트리의 일종으로, 부모 노드일수록 우선순위가 높은 데이터를 두는 자료구조이다. 루트 노드에는 가장 우선순위가 높은 데이터가 들어간다. 정렬의 일종인 힙 정렬(Heap Sort)을 해보기 위해 먼저 힙을 만들어보고, 만든 힙을 이용해 데이터를 정렬해보자.

자구/이진 트리(Binary Tree) - 수정중

1. 개요

이진 트리는 비선형 자료구조의 일종인데, 하나의 부모 노드에 두 개의 자식 노드가 연결된 형태의 트리(tree)이다. 일단 트리가 뭔지 살펴보고, 이진 트리가 어떤 장점이 있는지를 살펴보자. 그리고 이진 트리를 만들면서 동시에 이진 트리와 스택(stack)을 이용한 간단한 계산기를 구현해보자.

2018년 7월 30일 월요일

선대/마르코프 연쇄(Markov Chain)와 확률 행렬(Stochastic Matrix)

마르코프 연쇄란 시간에 따른 어떤 계의 상태가 확률적으로 변화하는 과정과 결과를 나타낸다. 또는 이산 확률 과정 중 마르코프 특성을 따르는 것이라고도 한다. 마르코프 특성이 뭔지 그 정의부터 시작하면 어려우니까 예시를 하나 들어보자.

2018년 7월 25일 수요일

자구/연결 리스트(Linked List) 만들기 1

자료구조의 기본인 리스트. 리스트에는 연결 리스트와 순차 리스트가 있는데, 순차 리스트는 배열로 구현하는 리스트로 배열의 단점을 그대로 가진다. 메모리가 정적이어서 길이를 변경하는 것이 불가능하다. 따라서 리스트라고 하면 보통 연결 리스트를 의미한다. 연결 리스트는

2018년 7월 23일 월요일

자구/ADT(Abstract Data Type), 추상 자료형이란?

1. 개요

보통 자료구조 책 처음에 ADT를 소개하고, 각 자료구조마다 먼저 ADT를 정의한 다음 각 자료구조의 소개를 시작한다. ADT, 추상 자료형이란 무엇이고 왜 자료형이라고 부를까? 왜 각 자료구조를 소개할 때마다 ADT가 들어갈까? 또 자료구조 공부에 있어서 ADT는 왜 중요할까?

자구/재귀(Recursion)와 하노이 탑 문제

재귀함수(Recursive Function)란 함수 내에서 자기 자신을 호출하는 함수이다.

어떤 때 쓰냐면, 어떤 답을 구하기 위해서 일련의 숫자만 다른 똑같은 과정을 반복할 때 쓴다. 가령 어떤 자연수 n의 팩토리얼을 구하기 위해서는

2018년 7월 22일 일요일

선대/similar matrix(닮음 행렬)에 대해

1. 개요

선대 책 보다가 similar가 자주 나와서 한 번 정리해본다. similar란, 같은데 표현만 다르다고 생각하면 된다. 가령 행렬 A와 B가 similar하다고 하면 둘은 같은 선형변환 T의 서로 다른 표현이라고 할 수 있다. similar라는 개념은 여러 가지로 유용하게 쓰인다.

2018년 7월 7일 토요일

[프리드버그 선형대수]5.3.Matrix Limits and Markov Chains(행렬 극한과 마르코프 체인)

이번 section에서 배우는 내용을 한 마디로 말하면 "정방행렬의 거듭제곱의 극한과 그 활용" 정도가 될 것 같다. 그 중 핵심은 Markov process와 Markov chain인데, 구글의 페이지링크에도 활용되는 등 공학적으로 많은 의의를 가진다고 한다. Markov chain은 이산 확률 과정(Descrete-time Stochastic process)의 한 종류인데, 충분히 많이 반복하면 안정 상태에 도달한다. 이게 무슨 소리인지 이해하기 위해서는 먼저 행렬의 거듭제곱의 극한, 전이 행렬(transition matrix or stochastic matrix) 그리고 확률 벡터(probability vector)에 대해 이해해야 한다.


2018년 6월 21일 목요일

[프리드버그 선형대수]5.2.Diagonalizability(대각화 가능성)

section 5.1에서 대각화(diagonalization)에 대해 대략 그것이 무엇이고 그와 관련된 고유값(eigenvalue), 고유벡터(eigenvector), 고유다항식(characteristic polynomial) 등의 개념을 배웠다. 이번 section에서는 어떤 연산 혹은 행렬이 대각화 될 수 있는지를 배운다.

DL/코세라 딥러닝 3.이진 분류기(Binary Classifier)를 만들기 위해서는?

이 글은 코세라 Andrew Ng 교수의 deep learning AI 강의를 듣고 기억하기 좋게 정리한 것입니다. 목표는 제 부모님도 이해하시도록 쉽게 쓰는 것입니다.