728x90 반응형 코딩 리스트형 [6] Deep Learning - Neural Network [6] Deep Learning - Neural Network Neural Network Neural Network의 역사는 과거부터 시작되었다. 사람의 뇌를 본뜨고자 하는 아이디어가 제시되었고 , 뉴런을 만들어 뇌의 구조를 흉내 내고자 하였다. 뉴런은 axon , 축삭돌기를 통해 활동전위를 전달한다. 이러한 뉴런의 구조를 본떠 입력을 받는 부분과 출력을 내보내는 부분이 존재하도록 객체를 만들었다. 위의 그림은 뉴런과 객체를 비교한 그림이다. 두 그림 모두 입력과 출력에 대한 부분이 존재하는 것을 확인할 수 있다. cell body에 들어온 입력에 대해 어떠한 함수에 대입해 계산하고 그 결과를 출력으로 내보내는 구조이다. 뉴런이 모여있으면 Neural Network이므로 , Neural Network는 .. 더보기 [5] Co-Occurrence Networks Analyzing [5] Co-Occurrence Networks Analyzing Network Science 요즘 데이터 분석은 사회 전반적인 부분에서 쓰이지 않는 곳이 없다. 각각의 사용되는 domain 분야에서 세부적인 분석은 다를 수 있지만 , 두 가지 큰 공통점들이 있다. 어떠한 오브젝트들 사이의 관계를 파악하는 것이 중요하다는 것과 이러한 관계에 대한 데이터의 양이 점점 방대해지고 있다는 점이다. 즉 neuron에서 entity가 사람이 될 수도 , 나라가 될 수도 , 물건이 될 수도 있다는 것이고 이러한 entity들 사이의 관계를 파악할 수 있는 데이터의 수의 양이 점점 늘어나고 있다는 것이다. 그래서 Network Science 라는 분야가 대두되기 시작했다. 기본적으로 Network Science는 아.. 더보기 [4] Latent Semantic Analysis & SVD [4] Latent Semantic Analysis & SVD Latent Semantic Analysis 자연어란 , 기계어나 프로그래밍 언어가 아닌 인간이 사용하는 언어를 의미한다. 자연어 기반의 데이터 즉 텍스트 데이터 들은 정형화되지 않은 비정형 데이터다. 정형화 데이터란 , 테이블 형식으로 표현이 가능하고 SQL을 이용한 query를 통해 기준에 맞는 데이터들을 확인할 수 있는 데이터를 이야기한다. 비정형 데이터는 이러한 특징이 없기 때문에 데이터를 다루는 데에 있어서 다른 방법을 사용해야 한다. Latent Semantic Analysis (LSA)란 , 각 문서에 포함된 단어들의 관계를 통해서 그 문서를 이해하고자 하는 방법이다. LSA의 가장 기본적인 목표는 관련된 콘셉트를 잘 뽑아내는 것.. 더보기 [3] Predicting Forest Cover with Decision Trees [3] Predicting Forest Cover with Decision Trees Decision Trees 위의 그림은 우유가 상했는지 , 상하지 않았는지 판단하는 의사결정 방법이다. 의사결정 방법의 구조와 트리와 닮아있기 때문에 의사결정 트리 , Decision Trees라고 한다. 트리의 구조를 가지고 있기 때문에 구조를 살펴보면 Leaf와 Node , Edge 같은 요소들을 가지고 있는 것을 확인할 수 있다. Decision Trees에서의 주목할 점은 Leaf에는 무엇이 들어갈지 모두 정해져 있다는 것이다. Leaf node 안의 내용이 중요한 것이 아니라 우유가 상했는지 상하지 않았는지를 판단하는 기준이 중요하다는 것을 의미한다. Feature와 lable을 보고 가장 잘 분류할 수 있는 .. 더보기 [2] K-means clustering algorithm [2] K-means clustering algorithm K-means clustering 지도 학습에 사용하는 데이터의 경우 정답 , lable이 존재했다. Regression이나 Classification 등의 지도 학습에 사용하는 데이터 set들은 모두 Input Feature가 있고 그에 따른 lable이 존재한다. 하지만 비지도 학습의 경우 lable이 존재하지 않는다. 비지도 학습의 경우 lable이 없는 데이터를 사용한다. 사용하는 Training data에는 Input Feature 만이 존재한다는 것이다. K-means clustering algorithm의 경우 위처럼 lable이 없는 데이터에 lable을 붙여주는 역할을 한다. 위의 그림의 경우 2차원 상에 데이터들이 분포해 있어 .. 더보기 [1] Collaborating Filtering & Alternating Least Squares [1] Collaborating Filtering & Alternating Least Squares Gradient Descent Algorithm 다음과 같은 linear regression 식을 세울 때 식 h(x)는 다음과 같은 과정을 거쳐 나타낼 수 있다. 존재하는 Training Set에 Learning Algorithm을 적용하여 가설 h를 도출하고 , x값을 가설 h에 적용해 추정되는 y값을 도출한다. 만약 linear regression의 경우 가설 h는 일차식의 형태로 나타낼 수 있을 것이다. 이후 최적화는 목적함수의 값을 최소화 하는 방향으로 이루어진다. 만약 위의 linear regression의 경우는 다음과 같은 목적함수값을 최소화하는 방향으로 최적화가 이루어질 것이다. 목적함수의.. 더보기 알고리즘 - Python / 백준 - 1490번 : 자리수로 나누기 1490번: 자리수로 나누기 (acmicpc.net) 1490번: 자리수로 나누기 첫째 줄에 어떤 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 어떤 수 N이 주어졌을 떄 , N으로 시작하면서 N의 모든 자리수로 나누어 떨어지는 수를 찾는 문제이다. 어떤 수 N의 모든 자리수로 나누어 진다는 것은 , N의 모든 자리수의 최소공배수로 나누어 떨어진다는 것을 의미한다. 따라서 LCM을 활용해 최소공배수를 구하여 활용하면 연산시간을 조금이나마 더 줄일 수 있다. 각 자리수에 대해 전체 최소공배수를 구한 후 , N 뒤쪽에 자리수를 늘려가며 숫자를 붙여 최소공배수로 나누어 떨어질 때 break 하도록 두었다. PyPy3 채점환경에는 아직 math... 더보기 알고리즘 - Python / 백준 - 1323번 : 숫자 연결하기 1323번: 숫자 연결하기 (acmicpc.net) 1323번: 숫자 연결하기 첫째 줄에 N과 K가 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. K는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 숫자를 연결하면서 k로 나누었을 때 나누어 떨어지는 수를 찾고 그때 몇번 이어붙여야 하는지 구하는 문제이다. 먼저 갈피를 잡아보기 위해 예제 케이스인 2 9를 실행하고 나오는 나머지들을 모두 확인하였다. 나열된 나머지들은 2 4 6 8 1 3 5 7 0 2 4 6 8 1 3 5 7 ... 로 확인한 결과, 패턴을 이루고 있었다. 2 9 의 경우는 2 4 6 8 1 3 5 7 0 이고 이때 처음으로 0이 나오는 9가 정답이 된다. 따라서 n % k 의 범위는.. 더보기 이전 1 ··· 7 8 9 10 11 12 13 ··· 17 다음 반응형