본문 바로가기

전체 글44

딥러닝 기초 나만의 정리 딥러닝 1. 인공 신경망(Neural Network) 개념 (1) 신경망 신경 세포 뉴런은 이전 뉴런으로부터 입력을 받으면, 입력 값들의 모든 합이 임계점에 도달해야만 출력신호를 발생시킴. 이처럼 입력신호를 받아 특정 값(임계점)을 넘어서야만, 출력을 생성해주는 함수를 활성화 함수(activation function)라고 한다. 지금까지 배워온 Logistic Regression 시스템의 sigmoid함수가 대표적인 활성화 함수임, 즉 sigmoid는 임계점이 0.5를 넘어야만 1로 출력을 내보내고, 0.5보다 작을경우 출력을 내보내지 않는다. (2) 인공신경망 이러한 생물학적 신경망의 개념을 참고하여 딥러닝에서 쓰이는 인공신경망 개념을 만들었다. 신경망에서의 뉴런의 역할을 인공신경망에서 로지스틱회귀가 .. 2020. 7. 8.
[백준] 14890:경사로 백준의 14890: 경사로 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 과정 1. 각각의 행과 열을 한 개씩 list형태로 함수에 집어넣는다. 2. 모든경우의 수를 생각해서 가지치기해준다. 처음 문제 풀 때는 어떤 자료구조 개념이 필요한지 고민했다. 약 1시간 정도 헤매다가 결국에는 하드코딩이 정답이라는 결론에 이르렀고, 모든 경우의 수를 생각하면서 가지치기를 해주는 코딩을 구현했다. 약 2시간 30분 걸림,,, 문제 자체는 어렵지 않은데 해결방법을 찾는.. 2020. 7. 6.
LSTM으로 IMDB 리뷰 감성 분류하기 LSTM으로 IMDB 리뷰 감성 분류하기 이번에는 데이터를 분류하기 위해 케라스를 활용해 보겠다. 머신 러닝의 연습을 위해 케라스에서는 영화 사이트 IMDB의 리뷰데이터를 제공해주는데, 해당 데이터와 LSTM을 활용하여 감성에 따라 분류하는 알고리즘을 구현을 연습해보겠다. from keras.datasets import imdb from keras.preprocessing.sequence import pad_sequences from keras.models import Sequential from keras.layers import Dense, LSTM, Embedding from keras.callbacks import EarlyStopping, ModelCheckpoint from keras.mode.. 2020. 7. 2.
그래프 나만의 정리 그래프 그래프는 아이템(사물 또는 추상적 개념)들과 이들 사이의 연결관계를 표현한다. 그래프는 정점(Vertex)들의 집합과 이들을 연결하는 간선들의 집합으로 구성된 자료구조 선형자료구조나 트리 자료구조로 표현하기 어려운 N:N 관계를 가지는 원소들을 표현하기 용이하다 0. 목차 그래프 유형 그래프 표현 그래프 순회 서로소 집합 1. 그래프 유형 무향그래프(Undirected Graph) 방향이 없는 그래프 유향 그래프(Directed Graph) 방향이 있는 그래프 가중치 그래프(Weighted Graph) 간선에다 가중치를 부여 사이클 없는 방향 그래프(DAG, Directed Acyclic Graph) 시작과 끝점이 같은 단순 경로 그래프 2. 그래프 표현 인접행렬(Adjacent matrix) v.. 2020. 6. 29.
백트래킹(Backtracking) 나만의 정리 백트래킹(Backtracking) 여러가지 선택지들이 존재하는 상황에서 한가지를 선택한다. 선택이 이루어지면 새로운 선택지들의 집합이 생성된다. 이런 선택을 반복하면서 최종상태에 도달한다. 올바른 선택을 계속하면 목표상태(goal state)에 도달한다. 1. 백트래킹 개념 모든후보를 검사?? Nope!! 백트래킹 기법 어떤 노드의 유망성을 점검한 후에 유망(promising)하지 않다고 결정되면 그 노드의 부모로 되돌아가(backtracking) 다음 자식노드로 감 어떤 노드를 방문하였을때 그 노드를 포함한 경로가 해답이 될 수 없으면 그 노드는 유망하지 않다고 하며, 반대로 해답의 가능성이 있으면 유망한다고 한다. 가치지기(pruning) : 유망하지 않는 노드가 포함된 경로는 더 이상 고려하지 않는.. 2020. 6. 29.
분할정복 (Devide and Conque)과 이진검색 분할정복 (Devide and Conque)과 이진검색 분할정복을 이용한 대표적인 정렬알고리즘인 병합정렬과 퀵정렬에 대해 알아볼것이다. 실제 전략 : 분할 => 정복 => 통합과정으로 이루어진다 (1). 병합정렬 정렬된 자료의 집합을 한 개의 정렬된 집합으로 만드는 정렬 알고리즘 ex) 6 2 5 1 => 26 15 => 1256 자료를 최소단위로 나눈후에 차례 소스코드 방법 1. append와 pop을 이용한 방법 # 분할과정 def merge_sort(arr): # 문제를 절반으로 나누는 함수 # print(arr) if len(arr) == 1: print(arr) return arr # 절반으로 나누어서 각각 별도의 정렬실행 mid = len(arr)//2 left = arr[:mid] right.. 2020. 6. 29.
탐욕알고리즘(greedy) 나만의 정리 탐욕알고리즘(greedy) 탐욕 알고리즘은 최적해를 구하는데 사용되는 근시안적인 방법 각 선택 시점에서 이루어지는 결정은 지역적으로는최적이지만, 그 선택들을 계속 수집하여 최종적인 해답을 만들었다고 하여, 그것이 최적이라는 보장은 없다 쉬운예) 지금 선택하면 사탕 10개를 주고, 1분뒤 선택하면 사탕 20개를 준다고할때, 탐욕알고리즘은 지금 선택하지만 이 선택이 최선은 아니다. 1. 탐욕알고리즘 동작과정 해 선택 현재 상태에서 부분 문제의 최적해를 구한뒤, 이를 부분해 집합에 추가한다. 실행 가능성 검사 새로운 부분해 집합이 실행가능한지를 확인한다. 곧, 문제의 제약 조건을 위반하지 않는지를 검색한다. 해 검사: 새로운 부분 해 집합이 문제의 해가 되는지를 확인한다. ex) 2370원을 거슬러주자!( 결.. 2020. 6. 29.
Logistic Regression(Classification) 나만의 정리 Logistic Regression - Classification 1. Logistic Regression(Classification) 개념 어떠한 input의 결과의 선택지가 2개만 존재하는 경우에, 둘중 하나를 결정하는 문제를 이진 분류(Binary Classification)라고 한다. 이러한 이진 분류 문제를 풀기위한 대표적인 알고리즘이 Logistic Regression(로지스틱 회귀)라고한다. input에 따른 output이 2가지로 나뉘는 Pass(1) or Fail(0) 인 Training Data를 이용해 learning 학습을 진행시킨 System을 이용하여 Test Data의 input의 output(Pass(1) or Fail(0)) 을 예측하는 시스템 이진분류 (Binary Cla.. 2020. 6. 28.
Linear Regression 나만의 정리 선형 회귀(Linear Regression) 1. 선형회귀 1.1 회귀(Regression) Training Data를 이용하여 데이터의 특성과 상관관계 등을 파악하고, 그 결과를 바탕으로 Training Data에 없는 미지의 데이터(Test Data)가 주어졌을 경우에, 그 결과를 연속적인(숫자) 값으로 예측하는 것 ==> 대부분 머신러닝 문제는 지도학습에 해당됨 머신러닝시스템에서의 학습(learning)의 개념 Training Data를 분석하여 다양한 y = Wx + b 중에서 Training Data의 특성을 가장 잘표현할수 있는 가중치 W(기울기), 바이어스(b)를 찾는것이 학습(learning)의 개념임 1.2 선형 회귀란 ?? 공부 시간을 늘리면 시험 성적이 잘나온다. 집의 평수가 클수록,.. 2020. 6. 27.
지도학습과 비지도학습 나만의 정리 지도학습, 비지도학습 Machine Learning Type 지도학습(Supervised): 어떤 종류의 미래값을 예측하냐에따라 2가지로 나뉨 회귀(Regression) 분류(Classification) 비지도 학습Unsupervised): 정답은 없고 입력값만 있다는것이 지도학습과의 가장 큰 차이 군집화(Clustering): 정답이 없기때문에 군집화로 사용됨 1. 지도학습 지도학습(Supervised Learning)은 입력 값(x)과 정답(t, label)을 포함하는 Training Data를 이용하여 학습하고, 그 학습된 결과를 바탕으로 미지의 데이터(Test Data)에 대해 미래 값을 예측하는 방법 ==> 대부분 머신러닝 문제는 지도학습에 해당됨 예1) 시험공부 시간(입력)과 Pass/Fail.. 2020. 6. 26.