목록Categories (1110)
KoreanFoodie's Study
해당 게시글은 오세라비 작가님이 2018년 11월 26일, 서울대학교에서 진행했던 강연에 대한 후기글입니다. 오세라비님 강연 후기 정말 오랜만에 글을 써 보는 것 같습니다(코드, 보고서 제외). 그만큼 오늘 오세라비님의 강연은 꽤나 큰 자극이었네요. KBS에서 촬영도 하러 왔으니, 아마 풀 영상은 힘들어도 편집본이나 클립 정도는 올려 주시지 않을까 생각합니다. 말 그대로 ‘후기’도 아닌 ‘감상’인지라, 강연에 대한 내용을 요약하거나 하지는 않습니다. 그저 의식의 흐름을 따라 몇 자 적어볼까 합니다. 0. 페미니즘은 어디서 와서, 어디로 가는가 페미니즘은 1940년대까지의 여성 참정권 운동(Women’s movement) 이후 새롭게 등장한 개념입니다. 이전의 여권 신장 운동과는 구별되는 개념으로, 독일 ..
나는 옅은 기대감이 뭍은 손을 움직여 내 점수가 저장된 파일을 열었다. 어디보자… xxxxx... xxx . . . oooo-ooooo : 58점 xxxx-xxxxx: 13점 oooo-ooooo : 48점 . . . 나는 순간적으로 멈칫했다. 그리곤 이내 그 멈칫거림조차 멈추었다. 멍- 하다. 나는 기대를 완전히 저버린 나의 점수를 보고 그저 멍할 뿐이었다. 이전 같으면 분노와 부끄러움, 수치심 따위의 여러 감정이 나를 사방에서 괴롭혔겠지. 하지만 이번에는 조금 달랐다. 평정을 찾은 걸까? 익숙해진 걸까? 나는 스스로에게 질문했다. 조금도 즐겁지 않았다. 아니, 즐겁기는 커녕 몸이 무겁게만 느껴졌다. 축 처지는 느낌. 활기차게 떠들어 대는 밴드 보컬의 소리가 밋밋하기만 하다. 어, 포기가 뭘까? 오늘 나..
해당 포스팅은 한빛 미디어에서 출판한 '밑바닥부터 시작하는 딥러닝'이라는 교재의 내용을 따라가며 딥러닝 튜토리얼을 진행하고 있습니다. 관련 자료는 여기에서 찾거나 다운로드 받으실 수 있습니다. 퍼셉트론에서 신경망으로 신경망의 예 신경망을 그림으로 나타낸 예시를 보자. Input이라고 표시된 것은 입력층, 맨 오른쪽 줄(Output)을 출력층, 중간 층(Hidden)을 은닉층이라고 한다. 은닉층의 뉴런은 사람 눈에는 보이지 않는다. 0층의 입력층, 1층이 은닉층, 2층이 출력층이 된다. 퍼셉트론 복습 기존 퍼셉트론은 이런 구조를 하고 있다. # 식 : y = 0 (b + w1x1 + w2x2 0) 여기서 b는 편향을 나타내는 매개변수로, 뉴런이 얼마나 쉽게 활성화되느냐를 제어한다. 한편, w1과 w2는 각..
해당 포스팅은 한빛 미디어에서 출판한 '밑바닥부터 시작하는 딥러닝'이라는 교재의 내용을 따라가며 딥러닝 튜토리얼을 진행하고 있습니다. 관련 자료는 여기에서 찾거나 다운로드 받으실 수 있습니다. 퍼셉트론(perceptron) 알고리즘 퍼셉트론은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 고안한, 매우 오래된 알고리즘이다. 하지만 퍼셉트론의 구조를 배우는 것은 신경망과 딥러닝으로 나아가는 데 중요한 아이디어를 배우는 일도 된다. 퍼셉트론이란? 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 여기서 말하는 신호란 전류나 강물처럼 흐름이 있는 것을 상상하면 좋다. 퍼셉트론 신호는 '흐른다/안 흐른다(1이나 0)'의 두 가지 값을 가질 수 있다. 위 사진은 입력이 2개인 퍼셉..
해당 포스팅은 한빛 미디어에서 출판한 '밑바닥부터 시작하는 딥러닝'이라는 교재의 내용을 따라가며 딥러닝 튜토리얼을 진행하고 있습니다. 관련 자료는 여기에서 찾거나 다운로드 받으실 수 있습니다. 개발 환경 갖추기 먼저, 파이썬을 설치해주자. 파이썬을 이용해 실습을 하는 과정에서, 여러 라이브러리가 필요하게 되는데, 아나콘다를 설치하면 실습에 필요한 대부분의 라이브러리가 같이 설치되어 매우 간편하다. 아래 링크에 들어가서 https://www.anaconda.com/distribution/#download-section Python 3.7 version 이라고 적힌 곳에, 사양에 맞게 64비트 혹은 32비트를 내려받아 설치를 진행하면 된다. 이미 파이썬이 설치되어 있다면, 설치된 파이썬에 맞게 64비트, 3..
학교에서 수업을 듣고, 버스를 탄 후 관악산을 내려가던 중, 현수막에 쓰인 글귀 하나가 눈에 들어왔다. 거기에는 이렇게 적혀있었다. “우리는 타자의 권리를 부정할 권리가 있는가?” 에서 “우리는 타자의 권리를 부정할 권리가 있는가?”라는 주제로 토론을 진행한다는 홍보용 현수막이었다. 나는 집으로 돌아오는 길에, 그리고 잠시 영화관에 들러 놓고 온 모자를 분실물 센터에서 찾아보는 시간 동안에, 또는 횡단보도를 건너며, 이 주제에 대해 잠깐 생각해 보았다. 내가 내린 결론은 이것이다. 현실 세계에서 타인의 권리는 이미 (일부분)부정되고 있으며, 또한 부정되어야만 한다고 생각한다. 언뜻 보면 저 문장을 보고 사람들이 극단적이며 반인륜적인 발언이라고 하며 원색적인 비난을 펼지도 모르겠다. 하지만 타인의 권리가 ..
Heap sort python code implementation Heap sort 파이썬 코드를 작성해 보자. 힙 정렬(Heap Sort) 힙은 2진 트리인데, Min-heap(최소값이 루트 노드에 있음. 부모 노드가 자식 노드보다 작아야 함.)과 Max-heap(최대값이 루트 노드에 있음. 부모 노드가 자식 노드보다 커야 함.) 위키 피디아의 설명을 참고해 보자. n개의 노드에 대한 완전 이진 트리를 구성한다. 이때 루트 노드부터 부모노드, 왼쪽 자식노드, 오른쪽 자식노드 순으로 구성한다. 최대 힙을 구성한다. 최대 힙이란 부모노드가 자식노드보다 큰 트리를 말하는데, 단말 노드를 자식노드로 가진 부모노드부터 구성하며 아래부터 루트까지 올라오며 순차적으로 만들어 갈 수 있다. 가장 큰 수(루트에 위치)..
Quick sort python code implementation 퀵소트(Quicksort)를 파이썬 코드로 구현해 보자. 퀵 소트(Quick sort) 퀵 소트는 배열을 파티션을 이용해서 반으로 나누고, 다시 이전 배열을 반으로 나눈 방식을 재귀적으로 적용한다. 파티션은 일반적으로, 제일 끝 배열의 원소를 pivot으로 잡고, 해당 pivot값보다 작은 값은 왼쪽으로 몰아 넣고, 큰 값은 오른쪽으로 몰아넣는다. 이 과정을 재귀적으로 반복하면, 각 파티션마다 O(n) 타임이 걸리고, 총 파티션은 평균적으로 O(logn) 타임이 걸리므로, 총 시간은 O(nlogn)이 걸리는 것을 알 수 있다. 위키피디아의 설명을 참고해 보자. 파티션은 다음과 같이 작동한다. 수도 코드를 살펴보자. function par..
Merge sort python code implementation merge sort 파이썬 코드를 작성해 보자. 병합 정렬(Merge Sort) 위키피디아의 설명을 참고해 보자. 병합 정렬은 다음과 같이 작동한다. 리스트의 길이가 0 또는 1이면 이미 정렬된 것으로 본다. 그렇지 않은 경우에는 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다. 병합 정렬의 핵심은, 문제를 푸는 방법론을 사이즈를 반으로 쪼갠 녀석에 적용해서 정렬을 완료한 후, 정렬이 완료된 반쪽짜리 2개를 다시 합침으로써 정렬을 마친다는 것이다. 즉, merge_sort함수는 2개의 merge..
Bubble sort python code implementation. 버블 정렬을 파이썬 코드로 구현해 보자. 버블 정렬 (Bubble Sort) 위키피디아의 정의를 참고해 보자. : 거품 정렬(Bubble sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 O(n^2)으로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 예시를 통해 버블 정렬이 어떻게 동작하는지 알아보자. 버블 정렬은 매우 단순한데, 그냥 처음부터 2개씩 짝을 지어 값을 비교한 후, 작은 녀석은 앞으로, 큰 녀석은 뒤로 보내면 된다. (55, 07)은 (07, 55)로, (55, 78)은 그대로, (78, 12)는 (12..