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)을 이용한 간단한 계산기를 구현해보자.

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

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