Computer Science
-
Definition, pros and cons 어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용하는 알고리즘이다. 이 알고리즘을 사용하기 위해서는 가장 가까운 직선거리에 어떠한 데이터가 있는지 살펴주면 되기에 간단하다. 다만 직선 거리를 비교하기 위해서 데이터를 모두 다 가지고 있어야 하는데, 데이터가 아주 많은 경우에는 공간복잡도나 시간복잡도가 많이 커진다는 단점이 존재한다. 추가적으로 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있다. (특히 회귀의 경우) Standardize 정의에서 살펴볼 수 있는 것처럼, 데이터 사이의 거리를 기준으로 판단하는 알고리즘이기에 스케일이 다르면 문제가 발생할 수 있다. 따라서 KNN을 사용하기 위해..
[Machine learning] 4. KNN(k-Nearest-Neighbors)Definition, pros and cons 어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용하는 알고리즘이다. 이 알고리즘을 사용하기 위해서는 가장 가까운 직선거리에 어떠한 데이터가 있는지 살펴주면 되기에 간단하다. 다만 직선 거리를 비교하기 위해서 데이터를 모두 다 가지고 있어야 하는데, 데이터가 아주 많은 경우에는 공간복잡도나 시간복잡도가 많이 커진다는 단점이 존재한다. 추가적으로 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있다. (특히 회귀의 경우) Standardize 정의에서 살펴볼 수 있는 것처럼, 데이터 사이의 거리를 기준으로 판단하는 알고리즘이기에 스케일이 다르면 문제가 발생할 수 있다. 따라서 KNN을 사용하기 위해..
2021.05.21 -
Supervised learning and Unsupervised learning 앞 포스팅에서 살펴본 것처럼, 지도 학습(Supervised learning)과 비지도 학습(Unsupervised learning)은 레이블 여부에 따라 구분할 수 있었다. 이 중 지도 학습의 경우, 훈련하기 위해 데이터와 정답이 필요한데 이를 각각 Input, Target이라고 하고 이 둘을 합쳐 Training data라 부른다. 주어진 Input에는 여러 가지 Feature이 존재한다. Split train set and test set(+ Sampling bias) 머신러닝 알고리즘의 성능을 평가하기 위해서는 훈련 목적으로 쓰는 데이터와 평가 목적으로 쓰는 데이터가 구분되어야 한다. 전자를 Train set, 후자..
[Machine learning] 3. PreprocessingSupervised learning and Unsupervised learning 앞 포스팅에서 살펴본 것처럼, 지도 학습(Supervised learning)과 비지도 학습(Unsupervised learning)은 레이블 여부에 따라 구분할 수 있었다. 이 중 지도 학습의 경우, 훈련하기 위해 데이터와 정답이 필요한데 이를 각각 Input, Target이라고 하고 이 둘을 합쳐 Training data라 부른다. 주어진 Input에는 여러 가지 Feature이 존재한다. Split train set and test set(+ Sampling bias) 머신러닝 알고리즘의 성능을 평가하기 위해서는 훈련 목적으로 쓰는 데이터와 평가 목적으로 쓰는 데이터가 구분되어야 한다. 전자를 Train set, 후자..
2021.05.21 -
Definition 가장 대표적으로 알려진 머신러닝의 정의는 다음과 같다. 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다. 예를 들어 스팸 메일을 구분하는 머신러닝 프로그램을 제작했다고 하자. 위의 정의에 따르면 훈련 데이터(스팸 여부를 알고 있는 데이터)는 E에 해당하고, T는 스팸 여부를 판단하는 행위에 해당한다. P는 직접 정의하기 나름이지만 정확도 정도로 판단할 수 있다. When we use machine learning? 기존의 프로그래밍 방식은 해당 경향성을 코더가 발견하고, 이를 코드에 반영시키는 방식으로 진행되었다. 반면, 머신러닝 기법으로 이 문제를 접근하..
[Machine learning] 2. Introduce machine learningDefinition 가장 대표적으로 알려진 머신러닝의 정의는 다음과 같다. 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다. 예를 들어 스팸 메일을 구분하는 머신러닝 프로그램을 제작했다고 하자. 위의 정의에 따르면 훈련 데이터(스팸 여부를 알고 있는 데이터)는 E에 해당하고, T는 스팸 여부를 판단하는 행위에 해당한다. P는 직접 정의하기 나름이지만 정확도 정도로 판단할 수 있다. When we use machine learning? 기존의 프로그래밍 방식은 해당 경향성을 코더가 발견하고, 이를 코드에 반영시키는 방식으로 진행되었다. 반면, 머신러닝 기법으로 이 문제를 접근하..
2021.05.21 -
What is Artificial intelligence 인공지능(Artificial intelligence)는 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술이다. 흔히 영화 속에서 난오는 인공지능은 인공일반지능(Artificial general intelligence) 혹은 강인공지능(Strong AI)이라고 부른다. 이는 사람과 구분하기 어려운 지능을 가진 컴퓨터 시스템을 의미한다. 하지만, 일반적으로 현실에서 우리가 마주하고 있는 인공지능은 약인공지능(Week AI)라고 부른다. 즉, 사회 각 분야에서 사람의 일을 보조하는 역할을 수행하는 것에 멈추고 있다. 일반인공지능이 실현되는 시기에 대해서는 단정지을 수는 없지만, 현재 상황에서 실현 가능성은 충분하다고 평가받고 있..
[Machine learning] 1. AI, ML and DLWhat is Artificial intelligence 인공지능(Artificial intelligence)는 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술이다. 흔히 영화 속에서 난오는 인공지능은 인공일반지능(Artificial general intelligence) 혹은 강인공지능(Strong AI)이라고 부른다. 이는 사람과 구분하기 어려운 지능을 가진 컴퓨터 시스템을 의미한다. 하지만, 일반적으로 현실에서 우리가 마주하고 있는 인공지능은 약인공지능(Week AI)라고 부른다. 즉, 사회 각 분야에서 사람의 일을 보조하는 역할을 수행하는 것에 멈추고 있다. 일반인공지능이 실현되는 시기에 대해서는 단정지을 수는 없지만, 현재 상황에서 실현 가능성은 충분하다고 평가받고 있..
2021.05.21 -
등장 배경 이 2개의 자료구조가 등장한 배경은 연속적인 데이터를 처리하는 방식의 효율적인 처리를 하기 위함이다. 스택의 경우, LIFO(Last in First out) 구조로 후입선출이 필요할 때 사용하게 된다. 대표적인 예시로 하노이탑을 생각해보면 된다. 나중에 들어온 것이 먼저 들어온 것보다 더 먼저 처리되어야 한다. 큐의 경우, FIFO(First in First out) 구조로 선입선출이 필요할 때 사용하게 된다. 대표적인 예시로 줄 서는 것을 생각해보면 된다. 먼저 들어온 것이 더 먼저 처리되어야 한다. 기본적으로 데이터들을 순차적으로 처리하는데, 처리하는 순서의 기준이 분명한 경우 해당 자료구조를 사용하게 되면 쉽게 처리할 수 있게 된다. 구현 방법 스택과 큐를 구현하는 방법에는 연결리스트를..
2. 스택 / 큐등장 배경 이 2개의 자료구조가 등장한 배경은 연속적인 데이터를 처리하는 방식의 효율적인 처리를 하기 위함이다. 스택의 경우, LIFO(Last in First out) 구조로 후입선출이 필요할 때 사용하게 된다. 대표적인 예시로 하노이탑을 생각해보면 된다. 나중에 들어온 것이 먼저 들어온 것보다 더 먼저 처리되어야 한다. 큐의 경우, FIFO(First in First out) 구조로 선입선출이 필요할 때 사용하게 된다. 대표적인 예시로 줄 서는 것을 생각해보면 된다. 먼저 들어온 것이 더 먼저 처리되어야 한다. 기본적으로 데이터들을 순차적으로 처리하는데, 처리하는 순서의 기준이 분명한 경우 해당 자료구조를 사용하게 되면 쉽게 처리할 수 있게 된다. 구현 방법 스택과 큐를 구현하는 방법에는 연결리스트를..
2021.04.11 -
등장 배경 이 자료구조가 등장한 배경은 연속적이지 않은 데이터들을 처리하기 위해서 등장하였다. 배열의 경우, 선언할 때 기본적으로 크기를 지정하게 되어있다. 컴퓨터는 이 정보를 활용해서 메모리 상에 consecutive하게 정보를 저장한다. 예를 들어 int arr[4](c class)라고 설정한 경우 컴퓨터는 int형 자료형이므로 4byte씩 4개 총 16개의 byte의 메모리를 할당하여 해당 메모리에 정보들이 consecutive하게 저장된다. 포인터 개념으로 이해해보면, 정보가 연속적으로 저장되어있기에 배열의 시작포인터와 자료형만 알면 해당 배열 index에 저장된 정보를 바로 읽을 수 있는 것이다. 그런데, 정보를 저장함에 있어 크기를 당장 정할 수 없는 경우도 존재한다. 물론 배열의 크기를 무..
1. 연결 리스트 (Linked list)등장 배경 이 자료구조가 등장한 배경은 연속적이지 않은 데이터들을 처리하기 위해서 등장하였다. 배열의 경우, 선언할 때 기본적으로 크기를 지정하게 되어있다. 컴퓨터는 이 정보를 활용해서 메모리 상에 consecutive하게 정보를 저장한다. 예를 들어 int arr[4](c class)라고 설정한 경우 컴퓨터는 int형 자료형이므로 4byte씩 4개 총 16개의 byte의 메모리를 할당하여 해당 메모리에 정보들이 consecutive하게 저장된다. 포인터 개념으로 이해해보면, 정보가 연속적으로 저장되어있기에 배열의 시작포인터와 자료형만 알면 해당 배열 index에 저장된 정보를 바로 읽을 수 있는 것이다. 그런데, 정보를 저장함에 있어 크기를 당장 정할 수 없는 경우도 존재한다. 물론 배열의 크기를 무..
2021.04.10