일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 머신러닝
- Ai
- XAI
- 자연어
- nlp
- trustworthiness
- DevOps
- word2vec
- 딥러닝
- 지피티
- GPT
- 인공지능 신뢰성
- 인공지능
- 챗GPT
- GPT-3
- 챗지피티
- Transformer
- fairness
- Tokenization
- Bert
- gpt2
- ChatGPT
- AI Fairness
- 케라스
- ML
- MLOps
- 신뢰성
- 설명가능성
- 트랜스포머
- cnn
- Today
- Total
목록머신러닝 (10)
research notes
얼마 전 스캐터랩이 개발한 인공지능 챗봇 서비스인 ‘이루다’가 개인정보 유출 및 성차별 문제로 많은 이슈 속에 서비스를 중단하였으며, 2016년 3월에는 미국의 컴퓨터 소프트웨어 회사인 마이크로소프트가 ‘테이’라는 인공지능 챗봇을 공개했지만 테이가 인종차별적 발언을 하는 등 막말을 내뱉기 시작하여 많은 논란이 커지자 마이크로소프트는 서비스를 종료했다. 이를 계기로 인공지능 편향성에 대한 문제가 수면 위로 본격적으로 떠올랐으며 인공지능을 도입하기 위해서는 안전하고 신뢰할만한 개발과 알고리즘의 중요성이 높아지게 되었다. 인공지능과 관련되어 제기되는 윤리적인 이슈 중 하나가 바로 편향성(bias)의 문제이다. 실제로 편향성의 문제를 편견(prejudice, vorurteil)이나 고정관념의 문제와 혼동하는 경..
1. 공정성에 대한 지표와 개념, 원칙은 분야와 상황에 따라 달리 적용해야 하고, 산업계 차원의 합의가 이루어지지 않고 있다. 2. 위험평가 알고리즘인 COMPAS는 과거 유죄판결을 받은 사람들의 재범 가능성 추정 그러나 실제로 범죄를 저지르지 않았음에도 불구하고 흑인이 백인보다 높은 위험도 판정을 받을 확률이 두배에 이름 3. 기계학습이 이해하는 수학적 공정성의 한계 기계학습이 이해할 수 있는 공정성은 수학적으로 정의되어 정량 평가가 가능해야 한다. 이에 대한 공정성의 정의는 무려 20여가지이며 대부분 분배적 관점에서 통계적 공정성에 초점을 두고 있다. 즉, 통계적 공정성에 대한 단일한(혹은 최상의 정의에 대한) 합의가 존재 하지 않는다. 이 외에 아래와 같은 공정성 관련 한계들이 존재한다. 4. 사회..
각 개인 또는 기업의 요구사항 및 제한사항에 따라 여러 오픈소스 라이브러리를 활용하여 자체적인 MLOps 시스템을 구축할 수 있다. 현재 MLOps 관련하여 다양한 도구들이 매일 빠르게 개발 및 활용되고 있기 때문에 이러한 시스템을 구축하려면 MLOps 도구 환경에 대한 이해가 있어야 한다. 이와 관련하여 Linux Foundation의 LF AI 프로젝트는 아래와 같이 ML/AI 및 MLOps 도구에 대한 Landscape를 제시하였다. References: [1] https://ml-ops.org/content/state-of-mlops [2] https://landscape.lfai.foundation/
1. LIME 개요 LIME은 개별 예측을 설명하는 데 활용할 수 있는 시각화 기술 중 하나이며, Model-agnostic 하므로 특정 분류 또는 회귀 모델에 적용할 수 있다. 복잡한 모형을 해석이 가능한 심플한 모형(Surrogate Model*)으로 locally approximation을 수행하여 설명을 시도한다. 이름에서 알 수 있듯 전체 모델이 아닌 개별 prediction의 근방에서만 해석을 시도한다는 점과 어떠한 모델 (딥러닝, 랜덤 포레스트, SVM 등) 및 데이터 형식도(이미지, 텍스트, 수치형) 적용이 가능하다는 특징이 있다. 오늘날 신경망과 같이 복잡성이 높은 머신러닝 모델을 사용하는 일반적인 상황에서, 예측 결과에 대하여 전역적으로 완벽한 설명을 제시하는 것은 현실적으로 매우 어려..
1. 차원의 저주 차원이 커질수록 데이터 포인트들간 거리가 크게 늘어나고 데이터가 희소화(Sparse)됨 수백~수천개 이상의 피처로 구성된 데이터 포인트들간의 거리에 기반한 ML 알고리즘이 무력화 됨 또한 피처가 많을 경우에 개별 피처간에 상관관계가 높아 선형회귀와 같은 모델에서는 다중 공선성 문제로 모델의 예측 성능이 저하될 가능성이 높음 다중공선성 문제: 독립변수간의 상관관계가 매우 높아 하나의 독립변수의 변화가 다른 독립변수에 영향을 미쳐 결과적으로 모델이 불안정하게 되는 것을 의미한다. 2. 차원축소의 장점 만약 수십~수백개의 피처들을 작은 수의 피처들로 축소한다면? 학습 데이터 크기를 줄여서 학습시간 절약 불필요한 피처들을 줄여서 모델 성능 향상에 기여 (주로 이미지 관련 데이터) 다차원의 데이..
1. Sequence-to-Sequence 모델 정의 하나의 RNN을 인코더 또 다른 하나의 RNN을 디코더라는 모듈로 명명하고 두 개의 RNN을 연결해서 사용하는 인코더-디코더 구조를 시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq)로 정의한다. 이러한 인코더-디코더 구조는 주로 입력 문장과 출력 문장의 길이가 다를 경우에 사용하는데, 대표적인 분야가 번역기나 텍스트 요약과 같은 경우가 있다. 영어 문장을 한국어 문장으로 번역한다고 하였을 때 입력 문장인 영어 문장과 번역된 결과인 한국어 문장의 길이는 똑같을 필요가 없다. 2. 컨텍스트 벡터(Context vector) seq2seq는 크게 인코더와 디코더라는 두 개의 모듈로 구성된다. 인코더 RNN 셀은 모든 단어를 입력받은 ..
1. 텍스트 분석 종류 텍스트 분류(Text Classification): Text categorization이라고도 하며 문서가 특정 분류 또는 카테고리에 속하는 것을 예측하는 기법 감성 분석(Sentiment Analysis): 텍스트에서 나타나는 감정/판단/믿음/의견/기분 등의 주관적인 요소를 분석하는 기법을 총칭 텍스트 요약(Summarization): 텍스트 내에서 중요한 주제나 중심 사상을 추출하는 기법이며 대표적으로 토픽 모델링(Topic Modeling)이 있다. 텍스트 군집화(Text Clustering)와 유사도 측정: 비슷한 유형의 문서에 대해 군집화를 수행하는 기법 2. 텍스트 분석 수행 프로세스 머신러닝 기반의 텍스트 분석은 다음과 같은 프로세스 순으로 수행 ① 텍스트 사전 준비작..
위 예는 과소적합과(Underfitting) 과적합의(Overfitting) 문제를 보여줌과 동시에 비선형(non-linear) 함수를 근사화하기 위해 어떻게 다항 선형 회귀를 사용할 수 있는지 방법을 보여준다. 플롯은 근사화하려는 코사인 함수의 일부, 실제 함수의 샘플 및 다른 근사하려는 모델을 표시하고 있다. 먼저 선형함수(차수가 1인 다항식)가 훈련 샘플에 적합하지 않음을 알 수 있는데 이것을 과소적합이라고 한다. 차수가 4인 다항식은 실제 함수에 거의 완벽하게 근사하지만, 더 높은 차수의 모델은 훈련 데이터에 과적합된다. 즉, 훈련 데이터의 노이즈를 학습한다. 교차검증을(cross-validation) 이용하여 과적합/과소적합을 정량적으로 평가할 수 있다. 검증세트에서 평균 제곱 오차(MSE)를 ..
1. Estimator 이해 및 fit(), predict() 메서드 사이킷런은 매우 많은 유형의 Classifier와 Regressor 클래스를 제공한다. 이들 Classifier와 Regressor를 합쳐서 Estimator 클래스라고 부른다. 즉, 지도학습의 모든 알고리즘을 구현한 클래스를 통칭해서 Estimator라고 부른다. 2. 교차검증 ① 홀드아웃 교차검증(holdout cross-validation) 데이터를 학습 데이터 세트와 테스트 데이터 세트 두 개로 나누는 것이며, 보통 데이터의 2/3을 학습 데이터 세트로 사용하고 1/3을 테스트 세트로 사용한다. ② k-겹 교차검증(k-fold cross-validation) 가장 보편적으로 사용되는 교차검증 기법으로 먼저 k개의 데이터 폴드 세..
1. type() and .shape array1 = np.array([1, 2, 3]) array2 = np.array([[1, 2, 3]]) print('array1 type: ', type(array1)) print('array1 shape: ', array1.shape) print('array2 shape: ', array2.shape) array1 type: array1 shape: (3,) array2 shape: (1, 3) 2. ndarray data type - ndarray 내의 데이터 타입은 같은 데이터 타입만 가능 - ndarray 데이터 값의 타입변경은 astype() 메서드를 사용 array_int = np.array([1, 2, 3]) array_float = array_int..