본문 바로가기

전체 글

(23)
블로그 이전 (티스토리 => 벨로그) 블로그 이전 공지입니다. 모든 게시물들은 다시 복습하는 겸 조금씩 수정하여 벨로그로 전부 옮겨놨으니 https://velog.io/@ss-hj ss-hj (Cammie) - velog ResNet이란 2015년에 개최된 ILSVRC에서 우승을 한 모델은 ResNet이다. 이 ResNet은 마이크로소프트에서 개발한 알고리즘이다. ResNet의 중요한 점은 2014년의 GoogLeNet이 22개 층으로 구성된 것에 비해, ResNet velog.io 필요하신 분들은 참고해주세요 ! 왜 블로그를 이전하였는가 티스토리는 마크다운 형식으로 바꾸어 포스팅을 할 수 있지만, 오로지 마크다운으로만 블로그를 작성하기에는 번거로운 부분이 많았다. 그리고 제일 큰 비중을 차지하는 이유는 벨로그의 UI가 개인적으로 매우 마음..
코딩 테스트 주요 알고리즘 feat.그래프 이론 본 내용은 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 책을 기반으로 포스팅하였습니다. 그래프 알고리즘 그래프 알고리즘은 매우 다양한데, 코딩 테스트에서 출제 비중이 낮은 편이지만 제대로 알아야 하는 알고리즘이다. 그래프는 노드(Node)와 노드 사이를 연결하는 간선(Edge)으로 이루어져있는 자료구조이다. 따라서 서로 다른 객체가 연결되어 있다는 내용이 있으면, 그래프 알고리즘을 떠올려야 한다. 또한 트리 자료구조는 다양한 알고리즘에서 사용되므로 기억해두어야 한다. 다익스트라 최단 경로 알고리즘에서 사용되는 우선순위 큐를 구현할 때, 최소힙을 이용할 수 있는데, 이때 최소 힙은 항상 부모 노드가 자식 노드보다 크기가 작은 자료구조로서 트리 자료구조에 속한다. 그래프 VS 트리 자료구조 그래프 ..
코딩 테스트 주요 알고리즘 feat.최단 경로 본 내용은 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 책을 기반으로 포스팅하였습니다. 최단 경로 말 그대로 가장 짧은 경로를 찾는 알고리즘이다. 최단 거리 알고리즘은 다익스트라 최단 경로 알고리즘, 플로이드 워셜, 벨만 포드 알고리즘 3가지가 대표적이다. 이 중 다익스트라 최단 경로 알고리즘과 플로이드 워셜 알고리즘에 대해 다뤄보도록 하자. 다익스트라 최단 경로 알고리즘 다익스트라 최단 경로 알고리즘은 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘이다. 이 다익스트라 최단 경로 알고리즘은 매번 '가장 비용이 적은 노드'를 선택하여 임의의 과정을 반복하기 때문에 기본적으로 그리디 알고리즘으로 분류된다. 알고리즘의 원리는 다음과 같다. 출발 노드를 ..
코딩 테스트 주요 알고리즘 feat.다이나믹 프로그래밍 본 내용은 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 책을 기반으로 포스팅하였습니다. 다이나믹 프로그래밍 연산 속도와 메모리 공간을 최대한으로 활용할 수 있는 효율적인 알고리즘을 짜도록 해야한다. 어떤 문제에 대해 약간의 메모리를 더 사용함으로써, 연산 속도를 매우 증가시킬 수 있는 다이나믹 프로그래밍 기법(동적 계획법)이 있다. 이를 개념적으로 설명하자면, 큰 문제를 중복이 일어나지 않는 작은 문제들로 나누어 푸는 방식이다. 이때, 작은 문제들이 반복하는 경우에 해당 문제에 대한 정답이 동일하다. 따라서 한번 계산한 작은 문제들을 각각 저장을 해놓고 나중에 반복이 될 때 다시 사용할 수 있도록 한다. 이를 메모이제이션(Momoization)이라고 한다. 이 다이나믹 프로그래밍은 탑다운(Top..
코딩 테스트 주요 알고리즘 feat.이진 탐색 본 내용은 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 책을 기반으로 포스팅하였습니다. 이진 탐색 순차 탐색 순차 탐색은 리스트 안에 있는 특정한 데이터를 찾기위해 앞에서부터 순서대로 데이터를 하나씩 확인하는 방법이다. 이 방식은 정렬이 되지 않은 리스트에서 원하는 특정 데이터를 시간만 있다면 찾아낼 수 있다는 장점이 있다. 순차 탐색의 파이썬 코드는 다음과 같다. # 순차 탐색 소스코드 구현 def sequential_search(n, target, array): # 각 원소를 하나씩 확인 for i in range(n): # 현재 원소가 찾고자하는 원소와 동일 하면 if array[i] == target: return i + 1 # 현재 위치 반환 print("생성할 원소 개수를 입력한 다음..
머신러닝 핵심 요약 5 (EVD, SVD, PCA, LDA) 사전 수학 개념들 기저? 백터공간 V에 대하여 임의의 벡터집합 S가 ① 서로 1차 독립이면서 ② 벡터공간 V를 생성하면 S는 V의 기저이다. 즉, 기저라 함은 특정 벡터 공간을 선형 생성하는 선형 독립인 벡터들로, S가 N 차원의 기저이면 N개의 벡터로 이루어져 있다. 이때 기저의 크기는 일반적으로 길이가 1인 단위벡터로 표시한다. (크기보다는 방향이 중요하기 때문이다.) 고유값, 고유벡터 행렬 A에 대해 다음 식을 만족한다고 가정하자. $$ Ax = λx $$ 이때, λ는 고유값으로 스칼라라고도 한다. 또한 이때 x를 고유벡터라고 한다. 위 식을 기하하적인 입장에서 보면 고유값 λ는 변화되는 크기를 의미하며, x는 변화되는 방향을 의미한다. 즉, 행렬 A에 대해 변환된 벡터 x가 λ배 만큼 확장 또는 ..
코딩 테스트 주요 알고리즘 feat.정렬 본 내용은 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 책을 기반으로 포스팅하였습니다. 정렬 정렬은 데이터를 특정한 기준에 따라서 순서대로 나열하는 것이다. 정렬 알고리즘은 다음에 포스팅할 이진 탐색의 전처리 과정이라고 할 수 있다. 많은 정렬 알고리즘들 중 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬에 대해 알아보자. 이 정렬 알고리즘들을 공부하면서 알고리즘의 효율성의 중요성을 자연스럽게 깨닫게 될 수 있다. 선택 정렬 선택정렬은 맨 앞의 데이터부터 가장 작은 데이터를 맨 앞으로 보내면서 데이터를 정렬하는 방식이다. 이렇게 가장 작은 데이터가 맨 앞에 오게 되면, 그 다음 두 번째 자리부터 이를 다시 반복하게 된다. 이를 파이썬 코드로 표현하면 다음과 같다. array = [7, 5, 9, ..
CNN 모델 정리 : AlexNet AlexNet 2012년에 개최된 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 대회의 우승을 차지한 컨볼루션 신경망(CNN) 구조이다. 딥러닝 기술이 컴퓨터 비전에서 최고 성능을 낼 수 있다는 증명을 하게 되었다. 이전까지는 딥러닝이라는 게 말만 거창한 거품처럼 여겨져, 이 알렉스넷을 이용한 팀도 처음에는 비웃음을 샀다고 한다. 위 차트는 그 당시 대회 알고리즘들의 점수인데, 여기서 SuperVision이 알렉스넷인데, 보면 알수있듯이 다른 알고리즘들과 달리 현저하게 낮은 에러율을 확인할 수 있다. 이런 알렉스넷의 등장으로 딥러닝 기술이 컴퓨터 비전에서 화두가 되었다. AlexNet 효과 알렉스넷이 어떻게 좋은 성과를 거두게 되었는지 알아보자. ..