강의자료 301

[정보올림피아드 대비]22. 암호화 관련 문제

1. 다음의 암호화된 문장을 해독하세요. KS VCDS HC USH CIF OGGSHG QFCGG HC RSGQSBROBHG. 생각해 보기) - 분수는 왜 유한소수 혹은 순환소수가 될까? 예) 3/10 = 0.3 7/20 = 0.35 2/125 = 0.016 1/7 = 0.142857..... 1/12 = 0.0833333... - 여기서 우리는 10진수 체계이므로 분모가 2와 5로 이루어진 경우는 유한소수이다. 증명) 7/20 = (7*5)/(20*5) = 35/100 과 같이 분모를 10의 거듭제곱으로 나타낼 수 있다. - 2와 5외의 수가 포함되면 순환소수이다. 증명) 1/7 = 10/70 = (10/7) / 10 = (1 + 3/7) / 10 = 1/10 + 3/70 3/70 = 30/700 = ..

[기초수학] 지수함수

1. 지수함수란 a를 양의 상수, x를 모든 실수 값을 취하는 변수라고 할 때 y=ax 형태로 주어지는 함수를 의미한다. 상수 a는 지수함수의 밑(base) 라고 한다. 밑의 값으로 특히 중요한 것은 자연상수 e 이다. 자연상수 e 는 다음과 같은 근삿값을 갖는다. e=2.718281828.... y=ex 역시 그래프로 나타낼 수 있으며 실변수 x의 함수로서 그래프는 항상 양수이고 왼쪽에서 오른쪽으로 증가한다. 이 때 그래프는 x축과 만나지 않지만 x축에 점점 접근해 간다. 2. 지수함수를 사용하는 이유 미분은 그래프의 기울기값으로 생각할 수 있다. 만약 시간(x축)에서 이동하는 거리(y축)을 측정한 후 특정시간에서의 기울기를 구하게 되면 그 시간을 지나는 시점의 속도를 알 수 있다. 적분은 미분의 반대..

[머신러닝활용] 컴퓨터 비전

1. 컴퓨터 비전이란? 컴퓨터가 이미지 픽셀을 해석하는 구조화된 알고리즘을 컴퓨터 비전이라 한다. 2. 비전을 위한 뉴런 사용하기 가장 기본적인 형태의 y=2x-1 과 같은 형태를 학습하는 딥러닝이라면 다음과 같은 구조를 가지고 있다. 한개의 층과 한개의 뉴런으로 구성된 간단한 신경망을 사용해서 훈련을 통해 m,c 를 2와 1 값을 찾아낼 수 있다. 가장 기본적인 위와 같은 형태의 신경망은 Sequential 을 사용한다. Sequential은 기본적으로 Dense를 가지고 있다. 위와 같은 모델은 다음과 같이 만들 수 있다. model = Sequential([Dense(units=1,input_shape=[1])]) Dense는 뉴런이 완전히 연결되어 있다는 것을 의미한다. units=1 은 1개의 ..

강의자료/머신러닝 2023.03.20 (9)

[알고리즘]다익스트라(Dijkstra) 알고리즘

다익스트라(Dijkstra) 알고리즘 다익스트라(Dijkstra) 알고리즘은 출발점이 있는 곳에서 모든 정점까지의 최단거리를 찾는 알고리즘이다. 경로에 음수가 포함되면 경로를 찾을 수 없다. 알고리즘 모든 정점의 최단거리를 구할 배열 d[]를 만들고 배열에 INF 값을 채워 넣는다.(INF 는 경로의 계산에서 나올 수 없는 매우 큰 값을 의미한다.) 출발하는 정점의 위치에 0을 채워 넣는다. 방문하지 않은 경로 중 현재까지의 값중에서 가장 짧은 거리의 정점을 선택한다.(만약 이 값이 INF 라면 갈 곳이 없다는 것이므로 더이상 진행하지 않아도 된다.) 선택된 정점은 방문한 정점으로 마킹을 한다. 선택된 정점에서 갈 수 있는 모든 경로를 가 보면서 자신까지 온 거리와 다음 정점까지 갈 수 있는 거리의 합이..

강의자료/알고리즘 2023.03.16 (9)

[기초수학] 제곱근

제곱근의 개념 - 제곱을 했을때 어떤 수가 되는 값을 그 어떤수에 대한 제곱근이라고 부른다. - 제곱근을 표현할때는 기호로 √(루트) 를 사용한다. 제곱근의 정의 어떤 수 a에 대해 a= b^2 을 만족하는 b가 있다면 이러한 b를 a의 제곱근이라고 한다. 실수에서는 양수에 대한 제곱근이 반드시 대개 존재한다. 제곱근의 공식 - √a^2 = a - a * √b = a√b - b√a + c√b=(b+c)√a - √a * √b = √ab - √a ÷ √b = √a/√b = √(a/b) - √(a^2 * b) = a√b 연습문제 1) 9의 제곱근을 구하시오 (3,-3) 2) 다음 문제를 계산하시오. 단 근호 안의 숫자가 최소가 되도록 표현하시오. √18 + √2 = √(3^2*2)+√2=3√2 3√6 * 2√..

[알고리즘] Floyd-Warshall(플로이드워셜) 알고리즘

1. 플로이드 워셜(Floyd-Warshall) 알고리즘 플로이드 워셜 알고리즘이란 모든 정점들간의 상호 최단거리를 구하기 위한 알고리즘이다. 시간복잡도는 O(N^3) 으로 i에서 j를 갈때 i->k->j 와 같이 모든 정점(k)를 거쳐서 i 에서 j를 가면서 가장 가까운 거리를 찾는 알고리즘이다. 기본적인 알고리즘 의사코드는 다음과 같다. 1 let dist be a |V| × |V| array of minimum distances initialized to ∞ (infinity) 2 for each edge (u,v) 3 dist[u][v] ← w(u,v) // 변 (u,v)의 가중치 4 for each vertex v 5 dist[v][v] ← 0 6 for k from 1 to |V| 7 for ..

강의자료/알고리즘 2023.03.09 (14)

[머신러닝활용] CCTV속 범인얼굴 특정하기

참고 소스 : https://github.com/kairess/simple_face_recognition GitHub - kairess/simple_face_recognition Contribute to kairess/simple_face_recognition development by creating an account on GitHub. github.com 모델 다운로드 shape_predictor_68_face_landmarks.dat - http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 dlib_face_recognition_resnet_model_v1.dat - github.com/kairess/simple_face_recognit..

강의자료/머신러닝 2023.03.07 (15)

[알고리즘 수학] 팬 케이크 만들기

팬 케이크를 한번에 두개만 구울 수 있는 팬으로 1이상 n개의 팬 케이크를 만들어야 한다. 모든 팬 케이크는 양쪽을 모두 구워야 하며 한쪽 면을 굽는데 1분이 걸리는데 한장을 굽든 2장을 굽든 시간은 똑같다. 최단 시간에 팬 케이크를 모두 굽는 알고리즘을 설계해 보자. 문제풀이) n=1 일때는 무조건 2분이 걸린다. n=2 일때도 역시 2분이 걸린다. n=3 일때는 1,2 를 앞면 구운 다음 1의 뒷면과 3의 앞면을 굽는다. 그 다음 2의 뒷면과 3의 뒷면을 굽는다. 따라서 3분이 걸린다. n=4 일때도 4분이 걸린다. n=5 일때 역시 n=2를 먼저 2분에 처리하고 나머지 3개를 같은 방법으로 3분에 굽기 때문에 결국은 n 분이 걸린다. 결국은 n이 1보다 큰 경우에는 모두 n분에 구울 수 있다. c언..

[인공지능수학] 신뢰구간(Confidence Interval)

1. 신뢰구간이란? 신뢰구간은 모수가 실제로 포함될 것으로 예측되는 범위를 의미한다. 대통령 선거때 출구조사를 통해서 신뢰수준 95% 이내에서 투표자의 몇 퍼센트가 후보자 A를 지지하고 있다는 말을 많이 듣는다. 이때 95%는 신뢰구간이며 몇 퍼센트는 A후보의 지지율이다. 신뢰구간을 사용하는 이유는 전체 표본을 수집하는데 시간과 비용이 많이 들기 때문에 표본을 구해서 모집단의 평균 범위를 추정한다. 2. 남산도서관 데이터로 알아보는 신뢰구간 2023.02.10 - [강의자료/인공지능수학] - [인공지능수학] 중심극한정리 지난 시간 남산도서관 데이터를 활용하여 중심극한 정리 를 알아 보았다. 남산 도서관 대출 건수를 모집단으로 1000개의 표본을 뽑아 계산한 표본의 평균이 표본의 갯수가 많을 수록 모집단의..

[알고리즘] 크루스칼알고리즘

크루스칼 알고리즘이란? 그래프 내의 모든 정점들을 가장 적은 비용으로 연결 하기 위해 경로를 찾을 때 사용되는 알고리즘입니다. 즉 그래프에는 노드(node)와 엣지(edge)가 있으며 엣지에는 가중치가 포함되어 있습니다. 이러한 그래프에서 모든 정점을 포함하고 사이클(Cycle)이 없는 연결선을 그렸을 때 가중치의 합이 최소가 되는 값을 구할 때 사용합니다. 크루스칼 알고리즘은 다음과 같은 단계로 구합니다. 1단계 : 각 정점 하나만을 포함하는 n개의 집합을 만듭니다. 2단계 : 모든 간선을 가중치 값을 기준으로 오름차순으로 정렬합니다. 3단계 : 가중치가 가장 작은 것 부터 검사하여 간선이 서로소(disjoint)인 두 집합을 연결하면 그 간선을 추가하고 연결된 두 집합을 하나의 집합으로 연결 합니다...

강의자료/알고리즘 2023.02.23 (12)