알고리즘(52)
-
Neural Networks (1)
*첨부한 자료의 모든 저작권은 COURSERA에 있음을 미리 밝힙니다. Neural Networks (1)- Basic Model of Neural Networks 지금까지 Linear Regression과, Logistic Regression의 방법을 통해 Linear Model과 Classification 모델에서 컴퓨터가 기계학습을 어떻게 하는지 살펴보았다.이제 이러한 모델들을 바탕으로 Neural Network, 즉 인공 신경망을 구축하여 더 복잡한 학습들을 수행하는 모델을구축하고자 한다. 우선 '인공 신경망' 을 구축하기 위해 실제 사람의 신경망이 어떤 구조로 연결되어 있는지를 살펴보아야 한다.사람의 신경세포는 Input Wire의 역할을 수행하는 "Dendrites"와 Computation을 ..
2019.02.07 -
[백준 3184 | DFS] 양
풀이 맨 처음에 BFS로 문제를 접근했다가 메모리초과가 나서 다시 DFS로 접근했던 문제였다.DFS로 이 문제를 해결하는 방법은 다음과 같다. 1. 반복문을 돌리면서 '#' 이 아닌 좌표를 찾아 차례로 DFS 함수를 실행한다.2. DFS 함수 안에서는 우선 해당 좌표의 값이 'v' 인지 'o' 인지, '.' 인지 확인한다.3. v 인경우 wCnt 값을 증가시키고, '.'로 바꾼다 o인 경우 sCnt 값을 증가시키고 '.'로 바꾼다.4. 해당 좌표의 상하좌우 값이 Valid 한 좌표인지 확인하고 각각 DFS를 수행한다. 하나의 구역 탐색이 끝나면, sCnt, wCnt를 비교해서 누가 이기는지 판단하고 최종 cnt1, 2값을 증가시키면 된다. 소스코드 1234567891011121314151617181920..
2019.02.05 -
[BOJ_2805 | Binrary Search] 나무 자르기
풀이 이분 탐색을 통해 문제를 해결하면 주어진 시간 안에 문제를 해결하는 알고리즘을 구현할 수 있다.먼저 주어진 나무들의 길이를 배열에 저장하고 Arrays.sort를 통해 빠르게 길이순으로 정렬한다.이분탐색의 탐색범위는 0부터 길이가 가장 긴 나무의 길이까지이며(left = 0, right = arr[arr.length-])mid 는 0부터 시작해 반복문의 매번 마지막에는 (left+right)/2 로 재설정해준다.각각의 반복문이 돌아갈 때마다또 다른 반복문을 통해 mid의 길이에 따른 잘린 나무들의 길이의 합을 구해준다.이 길이가 m과 같으면 mid의 값을 출력하고, 아닌 경우 각각 mid의 값을 갱신하여 반복문을 돌게 한다. 하지만 한 가지 주의해야 할 점이 있는데문제의 조건을 잘 살펴보면, 높이가..
2019.02.05 -
Logistic Regression with Octave
Programming Exercise 2 : Logistic Regression 이번 프로그래밍 과제에서는 Octave를 이용하여 Logistic Regression을 모델링하고실제 데이터를 이용해서 결과를 분석해야 했다. 구현해야 할 함수들은 다음과 같았다. ex2.m - Octave/MATLAB script that steps you through the exercise ex2 reg.m - Octave/MATLAB script for the later parts of the exercise ex2data1.txt - Training set for the first half of the exercise ex2data2.txt - Training set for the second half of the ..
2019.02.04 -
[BOJ_14501 | DFS] 퇴사
풀이 맨 처음에는 Dynamic Programming 방법으로 문제를 풀려고 시도했으나, 문제를 읽고 예제 몇개를 그림으로 그려가면서 시도를 해보니 DFS로 문제를 푸는 편이 더 간편할 것 같다는 생각이 들었다. DFS로 문제를 푸는 방법은 비교적 간단하다.큰 틀에서 보면 이중 For 문을 돌리는 것인데, 제시된 문제 예제를 기준으로 설명해보자면,1일부터 7일까지 반복문을 돌리면서 각각의 날짜를 시작으로 하는 경로를 찾는다.그리고 각각의 날짜에서 상담을 수행한 후에, 도달하게 되는 날짜를 다시 DFS에 집어넣어 반복한다. 예를 들어 1로 시작했다면, 1로 시작할 수 있는 경로는1 -> 4 ....1 -> 5 ....1 -> 6 ....등이 될 것이다. 이 모든 경로를 탐색하면서 경로에 놓여있는 Pi값을 ..
2019.02.02 -
MachineLearning - Classification(2)
Machine Learning - Classification(2) 앞서 Classification에서 사용하는 가설함수 h의 식이 Linear Regression Model에서 사용하는 가설함수의 식과는 다르기 때문에 비용함수도 조금은 수정을 가할 필요가 있다. 기존의 Linear Regression Model에서 사용하는 비용함수의 식을 그대로 사용하게 되면 "Non - Convex" 한 함수가 도출될 가능성이 높아지게 되는데, 이 "Non - Convex" 한 함수란, 볼록함수와는 달리 극점이 굉장히 많을 수 있는 함수(아래 그림 참조) 이기 때문에, Gradient Descent를 통해 구한 최솟값이 Local Minimum일 뿐, Global Minimum값은 아닐 수 있는 가능성이 생긴다. 따라..
2019.02.01