본문 바로가기

공부

(30)
리눅스(우분투) 터미널 명령어 정리 새로운 명령어를 익힐 때 마다 추가할 예정입니다. $man 궁금한 명령어를 만날 때 마다 man을 검색해 보자. 다음과 같이 친절히 알려준다. ($man ls) ls list directory contents 디렉토리 내에 존재하는 contents를 보여준다. pwd return working directory name 현재 디렉토리의 완전경로를 나타낸다. cd 디렉토리 변경 $ cd 자신의 홈디렉토리로 이동 $ cd . 현재의 디렉토리를 의미 (상대경로) $ cd .. 상위디렉토리로 이동 (상대경로) $ cd / 최상위 디렉토리로 이동 (절대경로) $ cd /abc/hello 한번에 해당 디렉토리로 이동 (절대경로) mv move files mv [-f | -i | -n] [-v] source targ..
오차역전파법 Backpropagation (오차역전파법) 오차를 역으로 전파하는 방법 여기서 오차란? 손실값 가중치 매개변수(w1, w2)의 기울기를 효율적으로 계산하는 방법 Q. 언제까지 이과정을 반복? ...더보기 A. 0이 될 때 가지 하는 것이 궁극적이나 0이 될 수 없으면 오차가 내가 정한 엡실론보다 작아질 때 까지 반복한다. Forward propagation (순전파) 계산을 왼쪽에서 오른쪽으로 진행 Computational graph (계산 그래프) 계산 과정을 그래프로 나타낸 것 복수의 node와 edge로 표현됨 계산 그래프를 통한 역전파 미분 값 전달 계산 그래프의 특징 국소적 계산을 전파함으로써 최종 결과를 얻음 국소적계산 전체에서 어떤 일이 벌어지든 상관없이 자신과 관계된 정보만으로 결과를 출..
신경망 학습 Learning (Training) 학습 훈련 데이터(training set)로부터 가중치 매개변수의 최적(optimization) 값을 자동으로 획득하는 것 Learning의 최종 목표 : 내가 어떤 신경망을 디자인했다면, 그 신경망의 최적의 가중치를 찾아내는 것 End-to-End Machine Learning 종단간 기계학습 데이터(입력)에서 목표한 결과(출력)를 사람의 개입 없이 얻으므로 딥러닝을 종단간 기계 학습이라 부르기도 한다. Q. 신경망의 성능을 평가하기 위해 신경망을 구성하는데, 이때 신경망을 구성한다는 것은 무슨 뜻일까? ...더보기 A. 가중치와 매개변수를 찾겠다는 것 Training Data 훈련 데이터 & Test Data 시험 데이터 훈련 데이터 : 최적의 가중치 매개변수 탐색..
신경망 Neural Network - 계단 함수, 시그모이드 함수, ReLU 함수 신경망 퍼셉트론으로 복잡한 함수를 표현할 수 있다. 그러나 가중치를 설정하는 작업은 사람이 입력해야 한다. 신경망은 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습한다. 신경망을 그림으로 나타내면 다음과 같다. 입력층 (input layer) - 정보를 넘겨주는 역할 은닉층 (hidden layer) - 은닉층은 보이지 않는다. 출력층 (output layer) - 넘어온 정보를 계산하는 역할 신경망은 모두 3층으로 구성되지만, 가중치를 갖는 층은 2개 뿐이므로 '2층 신경망'이라 한다. 가중치를 갖는 층의 개수 = (입력층 + 은닉층 + 출력층) - 1 활성화 함수 activation function 가중치가 달린 입력 신호와 편향의 총합을 계산하고 이를 y라 한다. 그리고 y를 함수 f( )..
퍼셉트론 perceptron 퍼셉트론이란? 신경망과 딥러닝의 기원이 되는 퍼셉트론은 1957년 프랑크 로젠블라트가 고안한 알고리즘이다. 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 실제 전류와 달리 퍼셉트론 신호는 '흐른다와 안흐른다(1 or 0)'의 두가지 값을 가진다. 입력 신호 : x1, x2 - 입력 신호가 있는 층을 입력층(Input layer)이라 한다. 출력 신호 : y 가중치 (weight) : w1, w2 원 : 뉴런, 노드, 유닛이라 불린다. 선 (edge) : 선은 데이터의 흐름(flow)을 나타내는 길 (tensor로 이 흐름을 구현하므로 텐서플로이다.) 퍼셉트론 동작 원리 입력 신호가 뉴런에 보내질 때 각각 고유한 가중치가 곱해진다. 뉴런에서 보내온 신호의 총합이 정해진 한계(임계값 θ)를..
[알고리즘] 2원 합병 정렬 merge sort 2원 합병 정렬 주요 특징 대표적인 분할 및 정복 기법 자료를 거의 동일한 크기의 두 그룹으로 나누고, 각각을 별도로 정렬한 후, 합병 순환 알고리즘 방식 복잡도분석 합병(merge)에 따른 비교회수 : n번 = O(n) 순환방정식 : T(n) = 2 T(n/2) + n 전체 비교 회수 : O(n log n) 장단점 수행 시간 우수, 단 순환 알고리즘의 한계 내포 추가 기억장소 사용량 : 추가 배열용 n개 필요 전체 총 2n개의 기억장소 필요, O(n) void merge_sort(data A[], int L, int R) { int m; if(R > L) { m = (R+L) / 2; merge_sort(A, L, m); merge_sort(A, m+1, R); merge(A, L, R, m); } }..
[알고리즘] 삽입 정렬 insertion sort 삽입 정렬 특징 하나씩 삽입하며 정렬한다. k번째 자료에 대해 생각할 때, 앞의 k-1개 자료는 이미 정렬되어 있다. 복잡도분석 K번째 자료의 비교 회수 최상 1회, 최악 (k-1)회, 평균 (k/2) 전체 : 최상 (n-1), 최악 1+2+...+(n-1)=O(n2) 장단점 (+) 순서가 틀린 자료가 적을 때 (즉, 위에서 m이 작을 때) (+) 20-25개 이하 정렬에 효과적 (-) 이동량 증가 (앞서 이동한 자료를 재이동) -> 리스트구조, 선택 정렬이 더 효과적 void insertion_sort(data A[], int n) { int i, j; data temp; for(i = 2; i 1 && A[j-1] > temp) { A[j] = A[j-1]; j--; } A[j] = temp; } }..
[알고리즘] 버블 정렬 bubble sort / flag 버블 정렬 주요 특징 여러 명칭 : sinking/ripple/exchange/shifting 등 인접한 두 원소들을 서로 비교, 필요시 교환 각 단계에서 대상 원소 중 최대값이 제일 뒤로 이동 (cf) 적용방법에 따라, 최소값이 처음으로 이동 가능 K단계 적용 후, 뒤쪽 k개는 이미 정렬됨 복잡도 분석 K번째 단계의 비교 회수 : (n-k)회 전체 비교 회수 : (n-1)+(n-2)+…+2+1 = O(n^2) (cf) 자료 교환 회수는 기본적으로 비교 회수와 동일 문제점 및 개선 한자료가여러번교환될수있음 (cf) 선택정렬 이미 정렬된 경우에도 계속 수행 -> flag 이용 #include using namespace std; const int SIZE = 15; int L[SIZE] = {10,4, 7..