본문 바로가기

2017/06/074

머신러닝 실습 with Tensorflow 4장 - Softmax classification - 머신러닝 실습 with Tensorflow 4장- Softmax classification - Softmax는 여러 개의 class를 예측할 때 사용되는 activation function이다. 앞선 장들에서는 sigmoid 함수만을 사용하여 예측을 하였는데 실제로 Output에 해당하는 layer에서는 Softmax를 이용하여 예측하는 경우가 많다. Softmax의 경우 실수로 나타나는 Output의 값들을 확률적으로 나오게 하여 모든 class의 합이 1이 된다. 그렇기 때문에 하나의 output에 대한 확률이 높아질 경우 다른 output에 대한 확률이 낮아지는 현상이 발생하게 된다. 이를 tensorflow로 구현하는 것은 매우 간단하다. 왜냐하면 tensorflow는 머신러닝을 위한 내장 함수를.. 2017. 6. 7.
알고리즘 7장 - 정렬 문제 : 퀵 정렬 - 알고리즘 7장- 정렬 문제 : 퀵 정렬 - 퀵 정렬은 크기가 커서 풀기 어려운 하나의 문제를 크기가 작아서 풀기 쉬운 여러 개의 문제로 바꾸어서 푸는 방법을 사용한다. 이런 방법을 divide-and-conquer paradigm라고 한다. 이를 수행하기 위해 Partitioning을 사용하여 정렬을 한다. Pivot element를 사용하여 Pivot element 왼쪽에는 Pivot 보다 작은 수들을 오른쪽에는 Pivot 보다 큰 값을 가지도록 정렬을 한다. Pivot을 계속 설정하여 위의 과정을 반복하여 수행하면 배열이 오름차순으로 정렬이 되게 된다. 퀵 정렬의 경우 Pivot을 어떻게 잡아서 Partitioning을 수행하는지가 매우 중요한 요건이라고 할 수 있다. 예를 들어 생각을 해보자. 라는.. 2017. 6. 7.
알고리즘 6장 - 정렬 문제 : 힙 정렬(2) - 알고리즘 6장- 정렬 문제 : 힙 정렬(2) - 앞 장에서 힙 정렬에 대한 개념을 알아보았다면 이번 장에서는 힙 구조를 만드는 것에 대해 중점을 두고 힙 정렬에 대해 살펴볼 것이다. 따라서 개념에 대한 부분을 보고자 하면 알고리즘 5장을 보면 될 것이다. Max 힙 구조를 만드는 코드를 한 번 살펴보자. Max 힙 구조는 부모 노드의 값이 자식 노드의 값보다 큰 이진 트리 구조를 나타낸다. Max 힙을 만드는 방법은 위에서 밑으로 만드는 것이 아니라 밑에서 위로 만든다고 할 수 있다. 만약 위에서부터 만들게 되면 밑으로 내려갈 때 마다 Max 힙의 구조를 만족시키는지를 확인해야하지만 밑에서 만들면 밑에서 트리 구조를 만족하는지만 생각하면 되기 때문에 수행 시간에서 단축될 수 있다. 여기서 length의 .. 2017. 6. 7.
리눅스 2장 - file edit(nano) & sudo & Package manager - 리눅스 2장- file edit(nano) & sudo & Package manager - 운영체제에서 파일이라고 하는 것은 정보를 저장하는 아주 기본적인 수단, 저장소라고 할 수 있고 디렉토리는 파일을 잘 정리정돈하기 위한 수납공간이라고 할 수 있다. 앞에서는 파일과 디렉토리를 어떻게 관리할 것인가에 대한 내용이었고 지금은 정보를 파일에 저장하는 방법에 대한 설명이다. 명령어 기반의 시스템에서 편집기로 사용되는 시스템으로는 nano와 vi가 있다. nano의 경우는 처음 리눅스를 사용하는 사람들이 사용하기에 편해서 좋고 vi는 리눅스에서 편집을 하는 것이 편리한 중급자들의 경우 많이 사용한다. 따라서 여기서는 nano에 대한 설명을 해볼 것이다. nano를 터미널에 입력하게 되면 편집기 화면으로 전환된.. 2017. 6. 7.