▶ 머신러닝 / 딥러닝
- 머신러닝은 인공지능의 하위 집합으로, 많은 양의 데이터를 제공하여 명시적으로 프로그래밍 하지 않고 신경망과 딥 러닝을 사용하여 시스템이 자율적으로 학습하고 개선할 수 있게 해줌
- 기계한테 어떤 조건을 스스로 학습하게(찾아내게) 하는 것
- 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘
- 데이터를 사용하여 학습하고 패턴을 인식하여 작업을 수행하는 인공지능 분야의 한 부분
- 머신러닝은 명시적으로 프로그래밍 되지 않은 상황에서도 기계가 데이터로부터 스스로 학습하고 예측, 분류, 패턴인식 등과 같은 작업을 수행할 수 있게 해줌.
- 기계 학습을 통해 수신한 이메일이 스팸인지 아닌지 구분할 수 있도록 훈련 가능
> 머신러닝의 주요 아이디어
- 데이터 기반 학습 : 머신러닝은 데이터를 기반으로 모델을 학습한다. 모델은 데이터의 패턴과 관계를 학습하여 예측을 수행하거나 결정을 내린다.
- 일반화 : 학습된 모델은 새로운 데이터에 대해 일반화 할 수 있어야 한다. 즉, 이전에 본적이 없는 데이터에 대해서도 정확한 결과를 내야 한다.
- 알고리즘과 모델 : 머신러닝에서는 다양한 알고리즘과 모델을 사용하여 데이터로부터 학습한다. 이러한 모델은 주어진 작업에 맞게 데이터의 특징을 표현하고 학습한다.
- 피드백 루프 : 머신러닝 모델은 초기에는 부정확하거나 오류가 많을 수 있다. 하지만 피드백 루프를 통해 데이터를 더 많이 수집하고 모델을 조정함으로써 성능을 지속적으로 향상시킬 수 있다.
> 머신러닝 사용 사례
- 로보틱 처리 자동화 (RPA) : 머신러닝을 활용하는 RPA는 주택담보대출 처리 애플리케이션과 같은 복잡한 작업을 자동화할 수 있는 지능형 자동화를 제공한다.
- 판매 최적화 : 고객 데이터는 고객 감정 분석, 판매 예측 분석, 고객 이탈 예측을 위한 머신러닝 알고리즘을 학습시킬 수 있다.
- 고객 서비스 : 머신러닝 애플리케이션에는 일상적인 고객 서비스 작업을 자동화하고 문제를 빠르게 해결하는 챗봇 및 자동화된 가상 어시스턴트가 포함되어 있다.
- 보안 : 머신러닝은 기업에서 위협 분석 기능과 사이버 공격, 해커, 멀웨어에 대응하는 방식을 개선하는데 도움이 된다.
- 디지털 마케팅 : 마케팅 담당자는 머신러닝을 통해 신규 고객을 파악하고 적재적소에 적합한 마케팅 자료를 제공할 수 있다.
- 사기 예방 : 신용카드 회사 및 은행은 머신러닝의 도움을 받아 방대한 양의 트랜잭션 데이터를 검토하여 의심스러운 활동을 실시간으로 식별한다.
▷ Supervised Learning (지도 학습) - 정답이 있는 문제
- 입력값(사진)과 정답 간의 상관관계만 Machine이 스스로 찾게 하는 것 (Find x → y relationship / 정답에 해당하는 y를 인간이 일일히 만들어 줘야함)
▷ Unsupervised Learning - 머신러닝의 한 분야로 입력 데이터의 패턴이나 구조를 발견하기 위해 사용되는 학습 방법. 이러한 유형의 학습에서는 정답이나 목표값이 주어지지 않음(데이터만 주고 정답은 따로 만들지 않음). 대신 데이터의 내재된 구조를 찾거나 유용한 정보를 추출하기 위해 알고리즘 사용.
⦁ Clustering(군집화) : 유사한 특징을 가진 데이터들을 그룹으로 묶는 작업. 이러한 그룹을 '군집'이라함. 데이터 내의 숨겨진 구조나 패턴을 발견하는데 사용.
- 군집화 예시) 고객 세그멘테이션, 이미지 분할, 토픽 모델링, 아이템 추천, 비슷한 음악 추천 등
- 대표적인 알고리즘 : K-Means, 계층 군집화(Hierarchical Clustering), DBSCAN 등
⦁ Dimensionality Reduction (자원 축소) : 데이터의 특징을 보존하면서 데이터의 차원을 줄이는 작업. 고차원 데이터는 시각화나 모델링에 어려움을 줄 수 있기 때문에 데이터를 더 낮은 차원으로 표현하여 처리하는 것이 목표. 이렇게 하면 정보 손실이 발생하지만 중요한 패턴은 보존 가능.
- 주성분 분석(PCA), t-SNE, Autoencoders(자동 인코더) 등이 자원 축소에 사용되는 기법
▷ Machine Learning Framework 종류
- Tensorflow, Python, Keras, Theano, Pytorch 등
▶ Training set / Test set
⦁ Training set (학습 데이터셋) : 모델을 훈련하기 위해 사용되는 데이터의 집합. 이 데이터는 입력 특징과 그에 해당하는 정답으로 구성되어 있음. 모델은 이 데이터를 사용하여 데이터의 패턴과 관계를 학습하며, 학습된 모델은 이러한 패턴을 기반으로 예측을 수행하거나 분류 등의 작업을 수행함.
⦁ Test set (테스트 데이터셋) : 테스트 데이터셋은 모델의 성능을 평가하기 위해 사용되는 데이터의 집합. 학습된 모델이 이 데이터에 대해 얼마나 일반화되는지를 확인하기 위해 사용됨. 테스트 데이터셋은 학습에 사용되지 않았던 새로운 데이터로 구성되며, 모델의 예측을 평가하여 모델의 일반화 성능을 측정함.
⦁ Underfitting (과소적합) : 모델이 학습 데이터에 대해서 제대로 학습되지 않은 상태로, 데이터의 복잡한 패턴을 제대로 파악하지 못하는 경우를 말함. 이 경우 모델은 학습 데이터셋에 대한 성능이 낮을 뿐만 아니라 테스트 데이터셋에 대해서도 성능이 낮을 수 있음. 모델이 너무 단순하거나 특징을 충분히 잡아내지 못할 때 발생할 수 있음.
⦁ Overfitting (과대적합) : 모델이 학습 데이터에 너무 맞춰져서 학습 데이터셋의 잡음(noise)도 모델에 포함시켜 복잡한 모델을 만들어내는 경우를 말함. 이로인해 모델은 학습 데이터에는 높은 성능을 보이지만, 새로운 데이터에 대해서는 일반화되지 못하고 성능이 낮을 수 있음. 즉, 모델이 학습 데이터셋에 너무 많이 fitting되어 데이터의 미세한 변동까지 모두 반영되는 상황
▶ Supervised Learning
⦁ Linear Regression (선형 회귀) : 입력 변수와 출력 변수 사이의 관계를 모델링하는 기법 중 하나. 주어진 데이터 포인트들을 가장 잘 설명하는 직선(또는 평면)을 찾는 것이 목표. 모델은 일반적으로 "y = mx + b"와 같은 선형 방정식을 사용함(y는 출력 변수, x는 입력 변수, m은 기울기, b는 y절편). 선형 회귀는 연속적인 데이터를 예측하는데 주로 사용됨
⦁ Non-linear Regression (비선형 회귀) : 비선형 회귀는 입력 변수와 출력 변수 사이의 관계가 직선이 아닌 경우에 사용되는 회귀 분석 기법. 실제 데이터의 패턴을 잘 설명하기 위해 곡선, 다항식 또는 다른 비선형 함수를 사용하여 모델을 구성함. 비선형 회귀는 보다 복잡한 데이터 관계를 모델링하는데 사용됨.
⦁ Linear Classification (선형 분류) : 데이터를 여러 클래스로 분류하는 기법 중 하나. 주어진 입력 변수들을 선형 경계를 사용하여 클래스로 분류. 이진 분류에서는 두 클래스 중 하나를 선택하는 것이 주 목표이며, 다중 클래스 분류에서는 여러개의 클래스중 하나를 선택하는 것.
⦁ Non-linear Classification (비선형 분류) : 데이터를 분류하기 위해 선형 경계를 넘어선 비선형 경계를 사용하는 기법. 데이터가 복잡한 형태로 나타나는 경우, 선형 경계로는 적절한 분류를 수행할 수 없을 때 사용됨. 비선형 분류는 다양한 비선형 함수, 커널 트릭 등을 활용하여 클래스를 구분함
▶ Unsupervised Learning
⦁ Autoencoders : 입력이 들어왔을때, 해당 입력 데이터를 최대한 압축시킨후, compression data를 다시 본래의 입력 형태로 복원 시키는 신경망.
- 데이터를 압축하는 부분은 encoder, 복원하는 부분을 decoder라고 함.
- 압축 과정에서 추출한 의미 있는 데이터를 보통 latent vector라고 함.
- 입력과 출력의 크기가 동일하다.
- 주로 데이터의 자원 축소, 특징 추출, 잡음 제거 등의 목적으로 사용.
▶ Deep Learning Techniques
⦁ Hyperparameter tuning : 머신러닝 모델을 최적화하기 위해 모델의 하이퍼 파라미터 값을 조정하는 과정을 말함. (하이퍼 파라미터는 모델의 학습 과정 및 구조를 제어하는 변수들로, 모델의 성능에 직접적인 영향을 미치지만 모델 자체가 학습하며 조정하지 않는 값들을 의미함)
- 하이퍼파라미터 튜닝의 목표는 모델의 일반화 성능을 최대화하는 최적의 hyperparameter 조합을 찾는 것. Hyperparameter는 다양한 값들로 설정될 수 있고, 모델의 성능에 영향을 미치기 때문에 적절한 값들을 찾는 것이 중요함.
- 하이퍼파라미터 튜닝을 수행하는 방법으로는 Grid search, Random search, Bayesian optimization, 자동화된 튜닝 라이브러리 사용 등이 있다.
- 과도한 튜닝은 과적합으로 이어질 수 있음.
- 검증 데이터를 사용하여 튜닝된 하이퍼파라미터 값을 평가하고, 최종 모델의 성능은 테스트 데이터를 통해 평가하는 것이 좋음.
⦁ Overfitting 피하기
- Overfitting이란 머신러닝 모델이 학습 데이터에 너무 맞춰져서 학습 데이터에 대해서는 높은 성능을 보이지만, 새로운 데이터나 테스트 데이터에 대해서는 제대로 일반화되지 못하는 상황을 말함. 즉, 모델이 학습 데이터의 잡음과 미세한 변동까지 모두 반영하여 너무 복잡한 구조를 가지게 되는 것.
- Overfitting을 피하는 것은 모델의 일반화 능력을 향상시키는데 중요함. 모델이 학습 데이터에만 맞춰져서 실제 환경에서의 성능이 떨어질 경우, 모델을 신뢰할 수 없게 만들 수 있음
- Overfitting을 피하기 위한 몇가지 방법 → 더 많은 데이터 수집, 데이터 정규화, 피처 선택 및 자원 축소, 모델 복잡도 조절, 교차 검증 사용, 조기 종료, Drop-out 등
⦁ Weight initialization (가중치 초기화) : 인공 신경망의 초기 가중치 값을 어떻게 설정할지 결정하는 과정을 말함.
- 초기 가중치 설정은 모델의 학습과 수렴 속도, 학습의 안정성에 영향을 미침.
- 적절한 가중치 초기화는 모델의 효율성과 성능을 향상시키는데 중요한 역할을 함.
- 가중치 초기화는 세가지 요소를 고려하여 초기 가중치 설정 → 효율적인 학습을 위한 초기값 선택 / 비대칭적인 활성화 유도 / 사전 훈련을 위한 초기값 선택
- 가중치 초기화 방법 = Random initialization, Xavier 초기화, He 초기화, Pre-trained initialization
▶ CNN
- 주로 이미지 처리와 컴퓨터 비전 작업에 사용되는 신경망 구조.
- 이미지 내의 지역적 패턴을 감지하고 추출하는데 특화되어 있음
- 주요 특징) Convolutional Layer (합성곱층), Pooling Layer (풀링층), Fully connected Layer (완전 연결층)
▶ RNN
- 순차적인 데이터나 시계열 데이터와 같이 시간적인 순서를 갖는 데이터를 처리하는데 특화된 신경망 구조
- 주요 특징) Recurrent Layer (순환층), Sequence output and Hidden state (시퀀스 출력 및 은닉 상태), Long-term dependency (장기 의존성 처리)
댓글