인공지능 개념 정리
머신러닝 (Machin Learning)
컴퓨터가 데이터를 기반으로 스스로 학습하고 예측을 수행할 수 있는 인공지능의 한 분야이다. 기존의 프로그램과 달리 머신러닝에서는 사람이 직접 규칙과 조건을 설정하는 것이 아니라, 데이터를 통해 스스로 패턴을 학습하고 이를 기반으로 예측을 수행한다. 이러한 방식으로 머신러닝은 데이터 분석과 예측 분야에서 많이 사용된다.
머신러닝은 크게 지도학습, 비지도학습, 강화학습으로 분류된다. 지도학습은 입력데이터와 그에 대한 라벨(label)을 함께 제공하여 모델이 입력 데이터와 라벨의 관계를 학습하고, 새로운 입력 데이터에 대한 예측값을 생성하는 방식이다. 예를 들어, 이메일이 스팸인지 아닌지를 판별하는 문제가 있다면, 스팸 여부에 대한 라벨이 있는 이메일 데이터를 이용해 스팸 필터링 모델을 학습시키고, 새로운 이메일이 스팸인지 아닌지를 예측할 수 있다.
반면 비지도학습은 입력 데이터만을 제공하고, 데이터의 구조나 패턴을 스스로 학습하고 클러스터링, 차원 축소, 이상치 탐지 등의 작업을 수행하는 방식이다. 마지막으로 강화학습은 보상(reward)과 패널티(penalty)를 이용하여 모델이 스스로 최적의 결정을 내리고, 학습하는 방식이다. 강화학습은 게임, 로봇 제어 등의 분야에서 활용된다.
* 클러스터링 (Clustering): 비지도 학습의 한 종류로, 데이터를 비슷한 특성을 가진 군집(cluster)으로 나누는 작업이다. 클러스터링은 데이터 분석, 이미지 처리, 음성 처리, 자연어 처리 등 다양한 분야에서 사용된다. 예를 들어, 고객 세분화를 위한 데이터 분석에서는 고객들을 비슷한 특성을 가진 그룹으로 묶어서 각 그룹별로 타겟 마케팅을 하기 위한 정보를 추출할 수 있다.
* 차원 축소 (Dimensionality Reduction): 데이터의 특징을 추출하거나 중요한 정보를 유지하면서 데이터의 차원을 줄이는 기법이다. 일반적으로 고차원 데이터를 다루다 보면 많은 양의 정보가 있어서 분석이 복잡해지고, 과적합(overfitting)의 위험이 있기 때문에 차원 축소 기법을 사용한다. 차원 축소는 데이터의 밀도(density)와 분산(variance)을 유지하면서 데이터의 차원을 낮춘다. 이를 통해 테이터의 노이즈(noise)를 제거하거나 효율적인 데이터 분석을 가능하게 하며, 머신러닝에서 모델의 성능을 향상시키는 데에도 사용된다.
* 이상치 탐지 (Outlier Detection): 데이터셋에서 일반적인 패턴과 동떨어진 데이터 포인트, 즉 이상지(outlier)를 찾아내는 기술이다. 이상치란, 일반적인 데이터 분포에서 크게 벗어나거나, 다른 데이터들과 패턴이 매우 다른 데이터를 의미한다. 이상치는 때로는 데이터 수집 시 발생한 오류로 인해 포함될 수도 있고, 새로운 패턴이나 현상을 발견할 수 있는 중요한 정보를 제공할 수도 있다. 이상치 탐지는 이러한 이상치를 제거하거나, 분석 대상에서 제외하거나, 실제 이상적인 데이터의 패턴을 파악하기 위한 전처리 단계로 활용될 수 있다.
* 과적합(overfitting): 모델이 훈련 데이터에 지나치게 맞추어져서, 새로운 데이터에 대해선 일반화(generalization)가 어려워지는 상태를 말한다. 즉, 훈련 데이터에 대한 성능은 매우 우수하지만, 실제 데이터에 적용할 때는 성능이 낮아질 수 있다. 과적합은 주로 모델이 너무 복잡한 경우 발생할 수 있다. 모델이 훈련 데이터에 매우 민감해져서 훈련 데이터에 대해 과도하게 최적화되면, 새로운 데이터에 대해서는 성능이 떨어지게 된다. 이를 방지하기 위해 일반적으로 규제(regulariztion) 기법을 사용하거나, 적절한 양의 훈련 데이터를 사용하고, 하이퍼파라미터를 조절하는 등의 방법으로 대처한다.
딥러닝 (Deep Learning)
인공 신경망(ANN, Artificial Neural Network)을 이용하여 입력 데이터로부터 직접 학습하고 패턴을 추출하는 머신 러닝의 한 분야이다. 딥러닝은 다양한 층으로 이루어진 신경망을 사용하여 고수준의 추상화(abstraction)을 학습할 수 있다. 이를 통해 이미지, 음성, 텍스트 등 다양한 데이터에서 패턴을 인식하고, 이를 활용해 예측, 분류, 생성 등 다양한 작업을 수행할 수 있다. 딥러닝은 최근 몇 년간 빠르게 발전하여, 이미지 인식, 음성 인식, 자연어 처리 등 다양한 분야에서 성공적으로 적용되고 있다.
* 추상화 (Abstraction): 복잡하거나 다양한 세부 사항을 일반적인 개념이나 아이디어로 단순화하는 과정을 말한다. 예를 들어, 컴퓨터 프로그래밍에서 변수를 사용하는 것은 추상화의 한 예이다. 변수는 값의 저장소로서의 역할을 수행하지만, 개별 값의 특성은 숨겨진다. 이를 통해 코드를 더 간결하고 일반적으로 적용 가능한 코드로 만들 수 있다. 또 다른 예로, 자동차 설계에서 "차량"이라는 개념은 구체적인 자동차의 모델, 크기, 색상 등의 다양한 세부 사항을 단순화한 것이다. 추상화는 복잡한 것을 이해하기 쉽고 적용하기 쉬운 개념으로 단순화함으로써 문제를 해결하는 데 도움을 줄 수 있다.
퍼셉트론 (Perceptron)
인공 신경망의 한 종류로, 이진 분류(binary classification)를 수행하는 지도학습 알고리즘이다. 퍼셉트론은 입력값과 가중치(weight)를 곱한 값들의 합과 편향(bias)을 더한 활성화 함수(activation function)를 거쳐 출력값을 계산한다. 이 출력값은 0 또는 1과 같은 이진 값으로 변환된다. 이진 분류 외에도 다중 클래스 분류, 회귀, 클러스터링 등 다양한 문제데 적용할 수 있다. 또한, 여러 개의 퍼셉트론을 연결하여 다층 퍼셉트론(Mutilayer Perceptron)을 만들 수 있으며, 이를 통해 보다 복잡한 문제를 해결할 수 있다.
* 이진 분류 (binary classification): 머신러닝에서 가장 기본적인 분류 문제 중 하나이다. 이진 분류는 주어진 데이터를 두 개의 그룹 중 하나에 할당하는 문제이다. 이때 할당할 수 있는 두 개의 그룹은 보통 "양성(positive)"과 "음성(negative)"으로 구분된다. 예를 들어, 이진 분류 문제 중 하나는 이메일이 스팸 메일인지 아닌지를 판별하는 것이다. 이 경우, 이메일은 스팸 메일일 경우 "양성"으로, 그렇지 않을 경우 "음성"으로 할당된다. 이진 분류 문제는 분류 문제 중 가장 간단한 문제 중 하나이지만, 다양한 실제 문제에서 활용된다.
* 알고리즘 (Algorithm): 어떤 문제를 해결하기 위한 일련의 절차나 규칙들의 집합을 의미한다. 컴퓨터 과학에서 알고리즘은 입력을 받아 출력을 생성하는 과정을 기술하는 단계별 절차이다. 알고리즘은 대개 문제 해결을 위해 설게되며, 다양한 분야에서 활용된다. 알고리즘은 주어진 문제에 대해 최적의 해결책을 찾는 데 도움을 주며, 이를 통해 작업을 효율적으로 처리할 수 있다.
* 가중치(weight): 인공 신경망의 핵심 요소 중 하나로, 각 노드 사이의 연결 강도를 조절하는 매개 변수이다. 머신러닝 모델에서 입력 데이터를 받아들이고 처리하기 전에 가중치를 초기화하고, 이후 학습을 통해 최적의 가중치 값을 찾아내게 된다. 이렇게 최적의 가중치 값을 찾아내는 과정이 모델의 학습 과정이다. 최적의 가중치 값을 찾아내는 것이 모델의 예측 정확도를 높이는 중요한 역할을 한다.
* 편향 (Bias): 인공 신경망 모델에서 입력값이 주어졌을 때 각 층에서 출력값이 제대로 예측되지 않는 경우를 보완하는 역할을 한다. 쉽게 말해, 각 층에서 입력값이 가중치와 곱해진 결과에 더해지는 상수값이라고 생각하면 된다. 이 값은 모델의 학습 과정에서 자동으로 조정된다. 예를 들어, 인공신경망에서 입력값을 가중치와 곱한 후에 그 결과값에 바로 활성화 함수를 적용하면, 만약 입력값이 모두 0이라면 출력값도 0이 된다. 하지만 각 층에 편향을 추가하면 이런 문제를 해결할 수 있다. 편향값은 모델이 자동으로 학습하면서 각 뉴런이 올바른 예측을 수행할 수 있도록 적절하게 조절된다.
* 다중 클래스 분류: 하나의 데이터가 여러 개의 클래스 중 하나에 속하는 것을 분류하는 문제를 말한다. 예를 들어, 손글씨 숫자를 분류하는 경우 0부터 9까지의 숫자 중 하나로 분류해야 한다. 이때, 각 숫자마다 하나의 클래스로 지정할 수 있고, 이것을 "다중 클래스 분류"라고 한다.
* 회귀 (Regression): 데이터의 입력값(feature)에 따라 출력값(target)을 예측하는 문제를 다루는 머신러닝 분야 중 하나이다. 주어진 입력값을 바탕으로 출력값을 예측하는 것이 목표인데, 예측하고자 하는 값이연속적인 값인 경우에 해당한다. 예를 들어, 주택 가격을 예측하는 문제에서는 다양한 특성(입력값)들을 활용하여 주택 가격(출력값)을 예측하는 것이 목표가 된다. 이때 주택 가격은 연속적인 값으로 표현되므로, 회귀 문제로 분류할 수 있다.
다층 퍼셉트론 (Multilayer Perceptron)
여러 개의 은닉층(hidden layer)으로 구성된 인공 신경망(ANN) 구조를 가진 모델이다. 다층 퍼셉트론은 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구성되며, 입력 층에서부터 출력층까지 층을 통해 정보가 전달되고 가중치와 활성화 함수를 통해 입력층의 값을 처리하여 출력을 생성한다. 다층 퍼셉트론은 다양한 분야에서 이용되며, 회귀, 분류, 클러스터링 등 다양한 문제에 적용될 수 있다.
* 은닉층 (hidden layer): 입력층과 출력층 사이에 존재하는 층을 말한다. 은닉층은 입력층으로부터 입력을 받아 가중치를 곱한 후 활성화 함수를 적용하여 출력을 계산한다. 이렇게 계산된 출력은 다음 층의 입력으로 전달된다. 여러 개의 은닉층을 쌓아 올린 인공신경망을 딥러닝이라고 한다.
* 입력층 (input layer): 인공신경망에서 외부에서 입력되는 데이터를 받아들이는 층이다. 보토은 데이터의 특징(feature)을 나타내는 변수의 개수와 동일한 수의 뉴런이 있으며, 입력층의 뉴런 하나는 하나의 변수에 해당한다.
* 출력층 (output layer): 인공신경망에서 마지막에 적용되는 층으로, 모델이 출력하는 값을 결정한다. 출력층의 뉴런 수는 모델의 출력 개수와 같다. 분류 문제에서는 출력층의 뉴런 수가 클래스의 개수와 일치하며, 각 뉴런은 해당 클래스에 속할 확률을 출력한다. 회귀 문제에서는 출력층의 뉴런 수가 출력하 값의 개수와 일치하며, 각 뉴런은 예측값을 출력한다.
옵티마이저 (Optimizer)
딥러닝 모델에서 최적의 가중치와 편향을 찾기 위한 최적화 알고리즘을 의미한다. 이 알고리즘은 모델이 학습을 하면서 손실 함수를 최소화하는 방향으로 가중치와 편향을 조정한다. 일반적으로 사용되는 옵티마이저에는 Stochastic Gradient Descent(SGD), Adam, RMSprop 등이 있다. 각각의 옵티마이저는 다른 특성을 가지고 있어서, 어떤 문제에 더 적합한지를 고려하여 선택해야 한다.
학습률 (Learning Rate)
딥러닝 모델에서 가중치 업데이트 시에 사용되는 값으로, 각 반복마다 가중치를 얼마나 업데이트할지 결정하는 역할을 한다. 학습률은 일반적으로 0.001에서 0.1 사이의 값을 사용하며, 이 값이 작으면 학습이 느리게 진행되고, 값이 크면 발산하거나 수렴하지 못할 수 있다. 따라서 적절한 학습률을 설정하는 것이 모델의 성능을 높이는데 중요한 역할을 한다.
* 발산(divergence): 최적화 과정에서 학습 알고리즘이 수렴하지 않고 결과값이 불안정해지는 현상을 의미한다. 학습 알고리즘이 가중치와 편향을 업데이트하는 과정에서 학습률, 배치 크기, 모델 구조 등 하이퍼파라미터를 잘못 설정하거나, 데이터에 이상치(outlier)가 있거나, 모델 자체의 문제 등이 발생할 수 있다. 이러한 이유로 발산은 딥러닝 모델의 성능을 떨어뜨리는 주요한 요인 중 하나이다. 따라서 발산을 방지하기 위해서는 적절한 하이퍼파라미터 튜닝, 데이터 전처리, 모델 구조 개선 등이 필요하다.
* 수렴(convergence): 머신러닝에서 모델이 학습 데이터에 대해 학습을 진행하며, 오차를 최소화하거나 목적 함수를 최대화하는 일련의 과정에서 최적의 파라미터 값을 찾아가는 과정을 말한다. 모델이 수렴한다는 것은, 학습이 진행되는 동안 파라미터가 더 이상 큰 변화를 보이지 않고, 학습 데이터에 대한 오차 또는 목적 함수가 더 이상 감소하지 않는 상태를 의미한다. 이러한 최적의 파라미터 값을 찾는 과정을 최적화라고도 한다.
* 파라미터(parameter): 머신러닝 모델의 학습에 의해 자동으로 조정되는 값으로, 일반적으로 모델 내부의 가중치와 편향 값을 의미한다. 이러한 파라미터들은 입력 데이터와 출력 데이터 간의 관계를 나타내는 함수의 형태를 결정하게 된다. 모델이 학습을 진행하면서 손실 함수를 최소화하는 방향으로 파라미터가 조정되어 모델의 예측 성능이 개선된다.
* 하이퍼파라미터: 머신 러닝 모델을 구성할 때 모델 자체의 학습 과정을 제어하기 위해 사용되는 변수이다. 일반적으로 하이퍼파라미터는 모델의 구조와 관련되지 않으며, 모델의 학습 과정에 대한 조절을 담당한다. 이러한 하이퍼파라미터는 학습률, 배치 크기, 에포크 수, 정규화 가중치 등이 있다. 하이퍼 파라미터를 효과적으로 튜닝하면 모델의 성능을 향상시키고 과적합을 방지할 수 있다.
경사하강법 (Gradient Descent)
머신러닝에서 모델의 파라미터를 최적화하는 방법 중 하나이다. 모델이 예측한 값과 실제 값 사이의 오차(손실함수)를 최소화하는 파라미터를 찾는 것이 목표이다. 경사하강법은 손실 함수를 미분하여 기울기(gradient)를 구한 다음, 기울기가 낮은 쪽으로 모델 파라미터를 조금씩 업데이트해 나가는 방식이다. 이때, 경사하강법은 학습률이라는 하이퍼파라미터를 사용한다. 학습률은 파라미터를 업데이트할 때 얼마나 크게 업데이트할지를 결정하는 요소이다.
경사하강법은 배치 경사하강법(Batch Gradient Descent), 미니배치 경사하강법(Mini-batch Gradient Descent), 확률적 경사하강법(Stochastic Gradient Descent)으로 나뉜다. 배치 경사하강법은 전체 데이터셋을 모두 사용하여 기울기를 계산하고 파라미터를 업데이트한다. 미니배치 경사하강법은 데이터셋을 일정한 크기의 미니배치로 나누어 기울기를 계산하고 파라미터를 업데이트한다. 확률적 경사하강법은 데이터셋에서 무작위로 하나의 데이터 포인트를 선택하여 기울기를 계산하고 파라미터를 업데이트한다.
손실함수 (Loss Function)
모델이 예측한 출력값과 실제 정답(label)값의 차이를 측정하는 함수이다. 모델이 예측한 출력값과 실제 정답값이 얼마나 차이 나는지 측정하여 이를 최소화하도록 모델의 가충치와 편향을 조정하는 것이 딥러닝 모델의 학습 과정이다. 손실함수는 주로 평균제곱오차(MSE, Mean Squared Error)나 엔트로피 오차(CEE, Cross-Entropy Error) 등이 사용된다. 평균제곱오차는 예측값과 실제값의 차이를 제곱하여 평균을 구하는 방식으로 계산되며, 교차 엔트로피 오차는 분류 문제에서 예측값과 실제값의 차이를 계산하는 방식으로 사용된다.
활성화 함수 (Activation Function)
인공 신경망에서 입력 신호의 총합을 출력 신호로 변환하는 함수를 말한다. 즉, 인공 신경망에서 각 뉴런에서 입력값을 받아 출력값을 계산하는데 이때 입력값의 가중치 합을 다음 층의 뉴런에 전달하기 전에 활성화 함수를 통과시켜 신호를 변환한다. 활성화 함수의 역할은 입력값을 비선형 함수로 변환하여 다음 층에 전달하여 신경망 모델이 비선형성을 학습할 수 있도록 하는 것이다. 대표적인 활성화 함수로는 시그모이드 함수, ReLU(Rectified Linear Unit)함수, 소프트맥스 함수 등이 있다.
* 선형함수(linear function): 입력 값에 대해 일정 비율로 출력 값을 반환하는 함수이다. 수학적으로는 y=ax+b와 같은 형태로 표현할 수 있다. 여기서 x는 입력값, y는 출력값, a는 기울기, b는 y절편을 의미한다. 선형 함수는 입력과 출력 간의 관계가 직선 형태로 표현되기 때문에 간단하고 계산이 쉽다는 장점이 있다. 선형 함수는 딥러닝 모델에서 출력층에 주로 사용된다.
* 비선형함수(nonlinear function): 선형함수와는 달리 출력 값이 입력 값의 선형 조합으로 표현되지 않는 함수를 비선형함수라고 한다. 비선형 함수는 딥러닝 네트워크에서 다양하고 복잡한 패턴을 학습하는 데에 필수적으로 사용된다.
* 시그모이드함수(sigmoid function): 비선형 활성화 함수 중 하나로, 입력값을 0과 1 사이의 값으로 변환시켜주는 함수이다. 시그모이드함수는 뉴런의 출력값이 0과 1 사이의 값을 가져야 할 때 주로 사용된다. 예를 들어, 이진 분류 문제에서 출력값이 해당 클래스에 속할 확률을 나타내야 할 때, 시그모이드 함수를 출력층의 활성화 함수로 사용한다. 시그모이드 함수는 S자 형태의 곡선을 그리며, 입력값이 작아질수록 0에 가까워지고, 입력값이 커질수록 1에 가까워진다. 이 때문에 입력값이 0에 가까울 때는 뉴런이 비활성화되는 경향이 있고, 입력값이 크면 뉴런이 활성화되는 경향이 있다.
* ReLU(Rectified Linear Unit)함수: 딥러닝에서 사용되는 비선형 활성화 함수 중 하나. 입력값이 0보다 작을 경우에는 0을, 0보다 클 경우에는 입력값을 그대로 출력한다. ReLU 함수는 간단하면서도 계산이 빠르기 때문에 딥러닝에서 많이 사용된다. 또한, 이 함수는 출력값으로 항상 양수를 가지기 때문에 vanishing gradient 문제를 예방할 수 있다.
* 소프트맥스 함수: 다중 클래스 분류 문제에서 출력층의 활성화 함수로 주로 사용된다. 소프트맥스 함수는 입력된 값들을 모두 0과 1 사이의 값으로 정규화(normalization)하며, 이들의 총합은 항상 1이 된다. 이를 통해 각 클래스에 대한 확률값을 구할 수 있게 된다.
회귀분석 (Regression Analysis)
인공지능에서 회귀분석은 데이터 분석 및 예측 분야에서 매우 중요한 역할을 한다. 인공지능에서 회귀분석은 기계학습 알고리즘 중 하나로, 독립 변수(X)와, 종속 변수(Y) 간의 관계를 모델링하고 예측하는 데 사용된다. 회귀분석은 다음과 같은 분야에 활용된다.
1. 예측 분야: 회귀분석은 입력 변수와 출력 변수 간의 관계를 파악하고, 이를 기반으로 새로운입력 변수가 주어졌을 때 출력 변수를 예측하는 데 사용된다. 예를 들어, 부동산 시장에서는 집의 크기, 지역, 방 수 등의 입력 변수를 기반으로 집값을 예측하는 데 활용된다.
2. 데이터 분석 분야: 입력 변수와 출력 변수 간의 상관 관계를 파악하여 데이터 분석에 활용된다. 예를 들어, 마케팅 분야에서는 광고 비용과 매출액 간의 관계를 파악하여 광고 효과를 분석하는 데 회귀분석을 활용할 수 있다.
3. 제어 분야: 입력 변수와 출력 변수 간의 관계를 파악하여 출력 변수를 제어하는 데 활용된다. 예를 들어, 제조업 분야에서는 생산라인의 온도, 습도, 진동 등의 입력 변수를 기반으로 제품의 품질을 제어하는 데 회귀분석을 활용할 수 있다.
* 선형 휘귀분석(linear regression): 독립변수X와 종속변수Y간의 선형적인 관계를 모델링하는 회귀분석 기법이다. 선형 회귀분석은 입력 변수와 출력 변수 간의 선형 관계를 파악하여 새로운 입력 변수가 주어졌을 때 출력 변수를 예측하는 데 활용된다. 선형 회귀분석에서는 입력변수X와 출력변수Y간의 관계를 일차 함수로 모델링한다. 이때, 일차 함수는 y=mx+b의 형태로 나타내며, 여기서 m은 기울기, b는 y절편을 나타낸다. 따라서 선형 회귀분석은 주어진 데이터를 가장 잘 설명하는 기울기와 y절편을 찾는 과정이다.
이미지 처리분야: 픽셀 값과 출력 값 간의 관계를 파악하여, 이미지에 대한 예측을 수행.
자연어 처리분야: 단어의 빈도수와 출력 값 간의 관계를 파악하여, 문서에 대한 예측을 수행.
추천 시스템 분야: 사용자의 선호도와 상품의 특징 간의 관계를 파악하여, 사용자에게 맞는 상품을 추천.
* 비선형 회귀분석: 독립변수X와 종속변수Y간의 비선형적인 관계를 모델링하는 회귀분석 기법이다. 비선형 회귀분석은 입력 변수와 출력 변수 간의 비선형 관계를 파악하여 새로운 입력 변수가 주어졌을 때 출력 변수를 예측하는 데 활용된다. 비선형 회귀분석에서는 입력 변수X와 종속변수Y간의 관계를 비선형 함수로 모델링한다. 비선형 함수는 일반적으로 y=f(x,θ) 형태로 나타내며, 여기서 θ는 모델 파라미터를 나타낸다. 따라서, 비선형 회귀분석은 주어진 데이터를 가장 잘 설명하는 모델 파라미터를 찾는 과정이다.
생물학 분야: 종양의 크기과 약물 투여량 간의 비선형적인 관계를 파악하여, 효과적인 약물 투여량을 예측.
환경 분야: 대기 오염 농도와 건강 상태 간의 비선형적인 관계를 파악하여, 대기 오염에 노출된 사람들의 건강 상태를 예측.
금융 분야: 주식 가격과 시장 요인 간의 비선형적인 관계를 파악하여, 주식 가격 변동을 예측.
결정계수 R2 score
회귀분석의 성능을 측정하는 지표 중 하나이다. R2 score는 0에서 1사이의 값을가지며, 1에 가까울수록 모델이 데이터를 잘 설명한다는 것을 의미한다. R2 score는 실제 종속 변수 값과 예측된 종속 변수 값 간의 상관 관계를 나타내는 값으로, 1에 가까울수록 예측한 값이 실제 값과 가까워진다. R2 score는 실제 값과 예측 값의 차이를 제곱하여 모두 더한 후, 전체 데이터에서 평균값의 차이를 제곱하여 모두 더한 값으로 나누어 계산된다. R2 score가 음수가 되는 경우에는 모델이 데이터를 설명하는 것보다 평균값으로 예측하는 것이 더 나은 경우이다.
분류분석 (Classification Analysis)
데이터를 미리 정의된 카테고리(class)에 할당하는 문제를 다루는 기법이다. 이는 입력 데이터의 특징(feature)과 해당 카테고리 간의 관계를 학습하고, 새로운 입력 데이터를 카테고리에 매핑(mapping)하는 모델을 구축하는 것으로 이루어진다. 분류분석은 대표적으로 지도학습(supervised learning)의 한 분야로, 입력 데이터와 해당 데이터의 정답(label)이 주어지는 학습 데이터를 활용하여 모델을 학습한다. 학습 데이터에서 모델은 입력 데이터의 특징을 분석하여 입력 데이터가 어떤 카테고리에 속하는지 예측한다. 이후, 새로운 입력 데이터가 주어졌을 때 모델은 학습한 패턴을 활용하여 해당 데이터의 카테고리를 예측하게 된다. 의료분야에서는 환자의 질병을 분류하는 데에 활용되고, 이미지 분류 분야에서는 이미지가 어떤 종류인지 예측, 자연어 처리 분야에서는 문서나 문장의 의미를 분류하는 데 사용된다.
* 지도학습(supervised learning): 인공지능 분야에서 가장 일반적으로 사용되는 머신러닝 기법 중 하나이다. 이는 학습 데이터에서 입력 데이터와 해당 데이터의 정답이 함께 주어지는 경우에 사용된다.
* 비지도학습(unsupervised learning): 데이터에서 정답이 주어지지 않고 입력 데이터만 주어지는 경우에 사용된다. 이 경우 모델은 데이터의 패턴이나 구조를 스스로 학습하여 데이터를 분류하거나, 군집화하는 등의 작업을 수행한다.
원 핫 인코딩 (One Hot Encoding)
인공지능 분야에서 범주형(categorical) 데이터를 처리할 때 사용되는 기법 중 하나이다. 원 핫 인코딩은 범주형 데이터를 0과 1로 이루어진 이진수(binary) 형태로 변환한다. 예를 들어, "색상"이라는 범주형 변수가 있다면, 이를 원 핫 인코딩을 통해 "빨강", "초록", "파랑" 등의 각각의 값을 0과 1로 이루어진 벡터로 표현할 수 있다. 이렇게 변환된 데이터는 인공지능 모델의 입력으로 사용될 수 있다.
또 다른 예로, 이진 분류 모델에서 학습 데이터로는 '성별', '나이', '직업', 등이 주어진다면, '성별'이라는 범주형 변수는 원 핫 인코딩을 통해 '남자'와 '여자'의 값을 갖는 이진수 벡터로 변환될 수 있다. 원 핫 인코딩을 통해 범주형 데이터를 처리하면, 모델이 범주형 변수를 인식하고 처리하는 데에 더 효과적일 수 있다. 하지만, 범주형 변수가 매우 많은 경우에는 이러한 변수들이 모델의 입력으로 사용될 때 차원이 매우 커지는 문제가 발생할 수 있다. 이 경우에는 차원 축소 기법 등을 사용하여 문제를 해결할 수 있다.
난수값 (random_state)
주로 랜덤한 초기 가중치를 설정하는 데 사용된다. 초기 가중치는 인공신경망 모델의 학습에 매우 중요한 역할을 한다. 따라서 랜덤한 초기 가중치 값을 설정함으로써, 모델의 학습 결과가 다양해지고 성능이 더욱 개선될 수 있다. 난수는 초기 가중치 설정 이외에도, 데이터를 무작위로 섞는 등의 다양한 용도로 사용될 수 있다. 예를 들어, 훈련 데이터와 검증 데이터를 나누거나, 배치 단위로 데이터를 불러올 때마다 데이터를 무작위로 섞는 등의 용도로 사용된다. 이러한 방식으로 데이터를 처리함으로써, 모델의 일반화 성능을 높일 수 있다.
'[네이버클라우드] AIaaS 개발자 과정 > AI' 카테고리의 다른 글
[네이버클라우드캠프] 2023.5.9 AI(2) - 실습 2 (0) | 2023.05.09 |
---|---|
[네이버클라우드캠프] 2023.5.9 AI(1) - 실습 1 (0) | 2023.05.09 |
[네이버클라우드캠프] 2023.5.8 AI(2) - 파이썬 기초, 딥러닝 다층 퍼셉트론 실습 (0) | 2023.05.08 |
[네이버클라우드캠프] 2023.5.8 AI(1) - Anaconda, Visual Studio Code 설치 (0) | 2023.05.08 |