Computer Science
https://m.hanbit.co.kr/store/books/book_view.html?p_code=B8870109394 IT CookBook, 컴퓨터 비전과 딥러닝 규칙 기반의 고전 컴퓨터 비전을 지원하는 OpenCV와 데이터 중심의 딥러닝 컴퓨터 비전을 지원하는 텐서플로를 활용한 85개 파이썬 프로그램으로 컴퓨터 비전을 균형 있게 배울 수 있습니다. m.hanbit.co.kr 위 도서를 기반으로 정리한 내용이며, 일부 내용이 없거나 추가되었을 수 있습니다. 자세한 내용을 알고 싶으면 위 책을 참고하여 주세요. 5.1 지역 특징의 조건 반복성 : 같은 물체가 서로 다른 두 영상에 나타낫을 때 첫 번째 영상에서 검출된 특징점이 두 번째 영상에서도 같은 위치에 검출되어야한다. 불변성 : 물체에 이동, 회..
https://m.hanbit.co.kr/store/books/book_view.html?p_code=B8870109394 IT CookBook, 컴퓨터 비전과 딥러닝 규칙 기반의 고전 컴퓨터 비전을 지원하는 OpenCV와 데이터 중심의 딥러닝 컴퓨터 비전을 지원하는 텐서플로를 활용한 85개 파이썬 프로그램으로 컴퓨터 비전을 균형 있게 배울 수 있습니다. m.hanbit.co.kr 위 도서를 기반으로 정리한 내용이며, 일부 내용이 없거나 추가되었을 수 있습니다. 자세한 내용을 알고 싶으면 위 책을 참고하여 주세요. 4.1 에지 검출 영상의 미분 미분 : x가 매우 미세하게 증가했을 때의 함수의 변화량 디지털 세계에서는 최소 변화량이 1이다. 따라서 f'(x) = f(x + 1) - f(x)로 표현할 수 ..
https://m.hanbit.co.kr/store/books/book_view.html?p_code=B8870109394 IT CookBook, 컴퓨터 비전과 딥러닝 규칙 기반의 고전 컴퓨터 비전을 지원하는 OpenCV와 데이터 중심의 딥러닝 컴퓨터 비전을 지원하는 텐서플로를 활용한 85개 파이썬 프로그램으로 컴퓨터 비전을 균형 있게 배울 수 있습니다. m.hanbit.co.kr 위 도서를 기반으로 정리한 내용이며, 일부 내용이 없거나 추가되었을 수 있습니다. 자세한 내용을 알고 싶으면 위 책을 참고하여 주세요. 3.1. 디지털 영상 기초 디지털 변환 컴퓨터는 카메라가 영상을 획득하는 과정을 모방한다. 사람의 눈을 모방 하기에는 뇌에서 처리되는 정보를 표현하기에 매우 어려웠다. 컴퓨터가 기본적으로 사용..
All materials are copyrighted and licensed under MIT license. © Alexander Amini and Ava Amini MIT Introduction to Deep Learning IntroToDeepLearning.com MIT Deep Learning 6.S191 MIT's introductory course on deep learning methods and applications. introtodeeplearning.com 이 강의 자료에 대한 모든 저작권은 MIT 에 있으며, 관련 자료가 필요하신 분은 위 사이트로 들어가면 누구나 자료를 다운받을 수 있으니 참고하길 바란다. https://www.youtube.com/watch?v=NmLK_WQBx..
Ensemble 하나의 모델이 아닌, 여러 모델을 함께 사용하여 모델의 성능을 향상 시키는 방법이다. 앙상블을 이용하면 가장 좋은 individual predictor로 도출된 결과보다 더 좋은 결과를 얻을 때가 있다. 여러 predictor를 사용하기 때문에 '집단지성'과 유사하다. 앙상블 기법은 대표적으로 Voting, Bagging, Boosting이 있다. 이에 대해 자세히 알아보자 Voting 다양한 classifier를 이용한 결과를 앙상블하는 기법이다. classifier를 만드는 방법은 다른 classifier를 사용하는 방법도 있고, 하나의 classifier에 random한 subset을 주고 학습하는 법도 있다. voting을 이용하면 각각은 weak learner 였더라도 서로 결합..
오랜만에 자료구조 내용이다. 우선순위 큐를 하기 전에 다양한 자료구조들에 대해 간략하게 짚고 넘어가자 Stack First In Last Out 방식이다. 가장 먼저 들어간 데이터가 가장 나중에 나온다. Queue First In First Out 방식으로 큐와는 반대로 가장 먼저 들어간 데이터가 가장 먼저 나온다. Deque stack 과 queue의 중간 성질을 가진다. 양방향으로 input, output이 가능하다. Priority Queue Priority Queue(우선순위 큐)는 '가장 우선순위가 높은 원소'를 먼저 나오게 하는 자료구조이다. 이때, 우선순위는 Total Order를 지키는 어떠한 키로도 설정할 수 있다. 가장 기본적으로 가장 작은 값을 출력하는 min priority queu..
https://www.toptal.com/developers/sorting-algorithms Sorting Algorithms Animations Animation, code, analysis, and discussion of 8 sorting algorithms on 4 initial conditions. www.toptal.com 위 사이트는 여러 정렬 기법의 속도를 비교할 수 있는 곳이다. 교수님께서 소개해주셨는데 여러 케이스를 한 눈에 볼 수 있어 매우 유용하다. Quick Sort 기본 개념 정렬할 원소 중 하나를 기준값 v로 정한 후 =인 원소를 v의 오른쪽에 두는 분할을 반복 적용하는 정렬 방법이다. merge sort와 함께 정렬에서 가장 많이 쓰이는 방법이다. merge sort에 대해..
세상에는 다양한 정렬 기법이 있다. 이 중 가장 많이 사용되는 것은 Quick Sort와 Merge Sort이다. 오늘은 이 중 Merge Sort에 대해 정리해보겠다. Merge Sort(병합정렬) 기본 개념 Merge Sort는 두 정렬된 배열을 ~N시간에 하나의 배열에 정렬된 상태로 병합할 수 있다는 사실에 기반한 방법이다. 병합정렬은 정렬한 결과를 다른 배열에 담아야하기 때문에 ~N 만큼의 추가 공간이 필요하다는 단점이 있다. 위와 같이 주어진 배열을 하나짜리 배열로 나눈 뒤 순서대로 병합해 나간다. 시간복잡도 N개 값을 Merge해야하기 때문에 N에 비례한 비교를 진행한다. 그리고 이 과정을 log2(N)회 반복하기 때문에 (반으로 잘라 나가기 때문에) ~Nlog2(N) 의 시간복잡도를 가진다...
Shuffle Sort 에 대해 알아볼 것이다. 이름에 Sort가 들어가서 단순히 '정렬'문제인가 착각할 수 있는데 정렬을 이용하여 uniformly random한 값을 얻는 방법을 의미한다. Shuffle Sort Shuffle의 개념 셔플은 말 그대로 섞는 것이다. 입력 데이터의 순서를 임의로 섞어야 한다. N = [1,2,3] 이 주어졌으면, 나올 수 있는 순서는 어떤 것이 있을까? => [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]로 총 6가지이다. 일반적으로 N개의 데이터를 입력 받으면 N! 개의 경우의 수가 발생한다. 그리고 이 중 하나를 얻을 확률은 1/N!이다. 가장 쉽게 Shuffle하여 uniformly random한 결과를 얻는 방법은 ..
정렬이란, 임의의 순서가 있는 데이터가 무작위로 주어졌을 때 이를 순서대로 나열하는 것을 의미한다. 정렬 방식은 여러가지가 있으며 오늘은 그 중 Shell Sort에 대해 알아보자. Insertion Sort 기본 개념 Shell sort를 알기 위해서는 Insertion Sort부터 알아야한다. Insertion Sort 는 이미 정렬된 상태에 새로운 데이터의 위치를 찾아 넣는 방식이다. 위 이미지에서 파란 부분이 이미 정렬된 부분, 붉은 부분이 새로 넣고자 하는 원소이다. 붉은 원소를 파란 부분의 어느 위치에 넣을 것인지 찾아 '삽입'하는 형태로 정렬을 진행하기 때문에 '삽입 정렬'이라고 부른다. 코드 # input : 정렬되지 않은 list # output : 정렬된 list def insertio..