손실함수

Transformer 모델에서 손실 함수를 사용하는 이유는 모델이 학습하는 동안 예측과 실제 값 간의 차이를 정량적으로 측정하고, 이를 바탕으로 모델을 최적화하기 위해서입니다.

Machine learning vs. Deep learning

assets/images/2025-03-18-01-01.png

Transfer model은 Deep learning model인가?

A Transformer model is a type of deep learning model designed for sequence-to-sequence tasks such as natural language processing (NLP). It was introduced in the paper “Attention Is All You Need” by Vaswani et al. (2017) and has since become the foundation for many state-of-the-art models like BERT, GPT, and T5.

Positional Encoding

Transformer는 RNN처럼 순차적으로 데이터를 처리하지 않기 때문에, 단어의 순서를 학습할 수 있도록 Positional Encoding을 추가합니다.

Transformer Encoder에서 Hidden State 사용 여부

네, Transformer 모델의 Encoder는 Hidden State를 사용합니다. 하지만, 이는 RNN의 Hidden State와 다르게 동작합니다. | 비교 항목 | RNN/LSTM의 Hidden State | Transformer의 Hidden State | | ——– | —————————– | —————————————— | | 의미 | 이전 시점의 정보를 다음 시점으로 전달하는 내부 상태 | 입력을 변환하여 각 레이어에서 새로운 표현(representation) 생성 | | 연결 방식 | 순차적(Sequential) 연결 | 병렬적(Parallel) 처리 | | 단어 관계 학습 | 최근 단어 중심(장기 의존성 학습 어려움) | Self-Attention을 통해 전역적인 문맥 학습 가능 | | 대표 모델 | LSTM, GRU | BERT, GPT, T5 |

transfer model의 encoder는 single hidden state를 생성하는가?

Transformer 기반 모델의 Encoder는 단일(Single) Hidden State가 아니라, 여러 개의 Hidden States를 생성합니다. 즉, 각 토큰(단어)마다 별도의 Hidden State가 존재하며, 이를 병렬적으로 처리합니다.

BERT의 용도

BERT (Bidirectional Encoder Representations from Transformers)는 주로 자연어 처리(NLP) 분야에서 사용되는 모델로, 다양한 작업에서 높은 성능을 보여줍니다. BERT는 문장의 양방향 문맥을 이해하는 데 강점을 가진 모델입니다. BERT는 기본적으로 Encoder만 사용하는 Transformer 모델로, 텍스트의 이해와 관련된 작업에 주로 사용됩니다.

BERT model에서 fine tunning은 사전 학습된 model을 upodate하는가?

BERT 모델에서 Fine-Tuning은 사전 학습된 모델을 업데이트하는 과정입니다.


거리측정 알고리즘

  • Manhanttan distance: L1 distance라고 부름. 뉴욕 거리처럼 격자로 구성해서 거리측정
  • Euclidean distance: L2 혹은 제곱거리. 두 점사이의 최단거리 직선.
  • Cosine distance: 두 점사이의 각도의 코사인.
  • Dot product distance: 내적 거리. 한 벡터로 다른 벡터를 투영하는 것을 기반.

Search algorithms

  • Brute-force algorithm: 무차별 대입.
  • TreeAh algorithm: 트리아. 대략적인 트리. 얕은트리 및 비대칭 해싱. ANN(Approximate Nearest Neighbor, 최근접이웃. 영역을 여러개로 분할. 정확성 어느정도 희생) ScaNN(Scalable ANN) 구글이 적용. 3가지 기법이. 매칭엔진이라는 이름으로 출시. Space pruning: Multilevel tree search: 공간 구분을 줄여야 한다. Data quantization: 데이터 양자화.(?응). 데이터 포인트 압축? Business logics integration

편향 Bias

  • 보고편향: 데이터 세트에 캽퍼된 이벤트, 속성, 결과의 빈도가 실제 빈도를 정확하게 반영하지 않을 때 발생. 이것은 사람들이 평범한 것이 일반적으로 받아들여진다고 가정하고 특이하거나 특히 기억에 남는 상황을 기록하는 데 집중하는 경향이 있기 때문에 발생 할 수 있음.
  • 자동화 편향: 각 시스템의 오류율과 관계없이 자동화되지 않은 시스템에서 생성된 결과보다 자동화된 시스템에서 생성된 결과를 선호하는 경향.
  • 표본 선택 편향: 데이터 세트의 사례가 실제 분포를 반영하지 않는 방식으로 선정된 경우 발생. Coverage bias: 데이터가 대표적인 방식으로 선택되지 않은 경우 발생 Non-response bias(or participation bias): 무응답 편향 또는 응답 참여 편향. 데이터 수집 과정에서 참여 갭으로 인해 데이터가 대표성이 없을 때 발생. Sampling bias: 표본추출 편향. 데이터 수집 중에 적절한 무작위 순서 지정이 사용되지 않을 때 발생.
  • 그룹 귀인 편향 Group Attribution bias: 개인에 대한 사실을 그 개인이 속한 전체 집단에 일반화하는 경향 Ingroup bias: 내 집단 편향. 자신이 속한 집단의 구성원이나 자신도 공유하는 특성에 대한 선호가 있을 때 발생 Out-group homogeneity bias: 외부 집단 동질화 편향. 자신이 속하지 않은 집단의 구성원 개개인에 대해 고정관념을 갖거나 그들의 특성을 더 획일적으로 보는 경향이 있을 때 발생.
  • 내재적 편향: Implicit bias. 일반적인 상황에 반드시 적용되는 것으로 확신할 수 없는 개인적인 사고 방식 및 경험을 바탕으로 가정을 세울 때 발생. 일반적으로 내재적 편향은 확증 편향의 형태로 나타남. 모델 빌더가 원래 가설과 일치하는 결과를 생성할 때까지 모델을 학습시키기도 하는데, 이를 실험자 편향이라고 한다.

조사

  • TFDV (Tensorflow Data Validation) stats = tfdv.generate_statistics_from_dataframe(dataframe=df,) stats = tfdv.generate_statistics_from_tfrecord(data_location=path,) tfdv.visualize_statistics(stats) schema = tfdv.infer_schema(stats) tfdv.display_schema(schema=schema) anomalies = tfdv.validate_statistics(statistics=other_stats, schema=schema) # 해보지는 않았지만, 기준이 있다면 얼마나 다른지 검사 할 수도 있겠다. tfdv.display_anomalies(anomalies) options = tfdv.StatsOptions(schema=schema, infer_type_from_schema=True) anomalies = tfdv.validate_examples_in_csv(data_location=input, stats_options=options) tfdv.display_anomalies(anomalies) tfdv.get_feature(schema, payment_type).skew_comparator.infinity_norm.threshold = 0.01 skew_anomalies = tfdv.validate_statistics(stats, schema, serving_statistics=serving_stats) tfdv.display_anomalies(skew_anomalies)

  • What-if Tool 추론 결과의 시각화 데이터 포인트를 선택하고 값을 수정한 후 예측(결과)가 변경되었는지 여부를 확인 할 수 있음. 반사실적분석 Counterfactual Analysis 뒤집기 비율이라고도 하며, 모델의 취약점을 알 수 있음.

  • TFMA (Tensorflow Model Analysis)

편향의 제거

  • 데이터를 보강하여 편향의 제거
  • 데이터의 격차는 좋지 않은 영향을 줄 수 있기 때문에, 이는 특정 하위 그룹에 대한 과도한 표현이나 불충분한 학습 데이터로 인해 다양한 하위 그룹에 걸쳐 급격한 성능 차이가 발생할 수 있기 때문입니다. 모든 그룹에 충분한 데이터 표현이 있는지 확인 필요 데이터에 경멸적인 라벨이나 품질이 낮은 데이터 등 의도한 사용 사례를 벗어난 유해한 라벨이나 미디어가 포함되어 있지 않도록 한다. 데이터가 고정관념이나 편향 상관관계와 같은 유해한 편향으로 왜곡되지 않오록 한다. 모델에서 의도하지 않은 상관관계를 초래할 수 있음. 주석, 라벨, 데이터 자체의 내용, 캡퍼된 내용에 대해 의도하지 않은 편견이 없도록 한다.
  • 편향을 식별할 때 특히 파이프라인의 데이터 필터와 연결된 경우 데이터 수집 파이프라인을 미세 조정합니다. 데이터 세트를 다시 샘플링하여 데이터 균형을 맞추고 데 많은 데이터로 보강. 다른 기존 데이터 세트. 합성 데이터 또는 새로운 데이터 수집. 유해한 라벨을 제거. 라벨을 현재 표준으로 업데이트. 초기 표기 작업중에 누락된 라벨을 추가하여 데이터 라벨을 다시 지정. (의미 생각 필요)데이터에 필터를 추가할 때마다 어떤 방식으로든 데이터에 편향성이 심해짐.

  • 머신러닝 개입기법 Threshold Calibration. 기준점의 보정. (거짓양성, 거짓음성, 참양성, 참음성으로 분류하여 비율을 정의) 손실함수의 변경. MinDiff. 에측분포에 초점을 두어 기회균등과 같은 공정조건을 달성하고자 함 CLP(Counterfactual Logit Pairing) 반사실적 공정성에 중점. 반사실적 공정성(Reflective Equilibrium Fairness)은 윤리학 및 사회 철학에서 사용되는 개념으로, 도덕적 판단과 원칙이 상호 조화를 이루도록 조정하는 과정에서 형성되는 공정성을 의미합니다. 이는 철학자 존 롤스(John Rawls)의 “반사적 평형(Reflective Equilibrium)” 개념에서 영향을 받은 개념입니다.

모델

입력유형 분류

  • intrimsic (model_type)
  • post-hoc (after traing) global (entire model): 좀더 집계된 설명을 제공. 전체 모델의 예측 공간을 참조. 어떤 특성을 가장 우선시하는지 물어볼수있음. 전역적 방법은 예측 공간에 대한 보다 온전한 맵을 제공하지만 개별 뉘앙스르 정확하게 캡처하지 못할 수 있음. 또한 예측 공간의 구체적인 영역에서 모델의 동작을 효과적으로 설명하지 못할 수도 있음. model agnostic (종속적. 모델의 내부 세부정보 사용) Partial Dependence Plots(PDP) Permutation Importance hybrid Aggregate local explanations (e.g. SHAP, Intergrated Gradients) model specific (비종속적. 모델에 제공된 데이터를 조작하여 모델의 행동을 검토. 입력특성의 변화가 어떻게 모델의 출력 예측에 영향을 미치는지 분석) Tree gain-based importance TCAV
    local (individual predictions) : 각 데이터 포인트에 대한 설명을 제공. 왜 그렇게 분류하는지 모델에 물어 볼 수 있음. 특정 데이터 포인트에서 구체적인 예측 이면에서 이루어지는 추론을 상세히 알아볼 수 있음 model agnostic (종속적. 모델의 내부 세부정보 사용) Shapley values LIME model specific (비종속적. 모델에 제공된 데이터를 조작하여 모델의 행동을 검토. 입력특성의 변화가 어떻게 모델의 출력 예측에 영향을 미치는지 분석) IG(Integrated Gradients) 모델 예측간의 관계를 특성이라는 측면에서 설명하는데 목적이 있음. 신경망처럼 미적분할 수 있는 모델을 위해 고안. 주로 개별 예측을 SmoothGrad XRAI Grad-CAM

출력유형 분류

  • Feature-based Explanation 중요성을 강조하는 기여점수, 마스크 또는 일부 시각화

    이미지의 경우: 이미지 내의 어떤 픽셀 또는 부분이 모델의 분류에 가장 많이 기여했는지 여부. 예를 들면 허스키의 코와 얼굴 특성에 가장 많은 점수 부여 등.

    PDPs Partical Dependence Plots 부분 의전도(PDP)는 사후적이고 전역적인 모델 비종석적 기법이며, 모델의 에측과 특정 입력 특성의 값 사이의 관계를 시각화하는 데 사용. 또한 한 입력 특성의 값을 바꾸는 동시에 다른 모든 특성을 지속적으로 유지할 경우 모델 예측이 어떻게 변화하는지 보여줌. 더 구체적으로는 모든 데이터 포인트가 특정 특성 값을 가정하도록 강제할 경우 해당 특성 값의 부분 의존 함수는 평균 예측을 나타냄. (엥? 수학인가?) PDP는 종종 특성 분포를 플롯으로 시각화하며 이를 통해 데이터가 제한적인 특성 공간의 영영을 표시할 수 있습니다 여러 특성 상호작용에서 PDP를 시각화하는 것이 가능하지만 인간은 고차원 시각화를 해석하기 어려울 수 있습니다. 따라서 PDP는 보통 2개의 상호작용 특성으로 제한되며 각 축에 하나씩 위치합니다. 이를 위해서는 분석하려는 입력 특성을 선택합니다. 다른 모든 특성을 지속적으로 유지하면서 선택한 특성 값을 체계적으로 변경합니다. 각 특성값에 대해 모든 데이터 포인트의 평균 예측 결과를 계산합니다. 이는 해당 특성 값에 대한 예측의 부분 의존을 나타냅니다. x 축의 특성값과 y 축에 해당하는 평균 예측을 플롯합니다. 그러면 부분 의존 관계가 시각화됩니다. PDP는 입력 특성과 모델 예측 사이의 관계를 이해하기 위한 중요한 도구를 제공하며 중요한 특성을 식별하고 비선형 관계를 감지하고 모델의 잠재적 편향을 발견하는 데 도움을 줄 수 있습니다.

    LIME (Local Interpretable Model-Agnostic Explanations) 관심 인스턴스를 선택: 이미지를 세그먼트의 하위 집합인 슈퍼픽셀로 분할.(그림을 의미있는 조각으로 분할) 일부 특성이나 이미지 슈퍼픽셀을 숨김표시하여 입력 이미지의 섭동을 생성. (섭동(攝動, Perturbation)은 물리학, 수학, 천문학, 공학 등 다양한 분야에서 사용되는 개념으로, 기존 시스템이나 해석적인 해에 작은 변화를 가하여 그 영향을 분석하는 방법을 의미합니다.) 출력 예즉을 위해 해석하려는 심층신경망 모델과 같은 타겟 모델을 각 섭동에 사용합니다. (먼가 많이 달라지만 찾고자 하는 특성에 의미가 있고. 별 변동이 없으면 의미없는? 즉, 찾고자 하는 특성이 아닌?) 각 입력이 특성의 존재 또는 부재를 나타내는 새 데이터 세트를 생성하면 해당하는 출력은 섭동이 찾고자 하는 것(예, 개구리)일 예측 확률이 됩니다. 거리 측정항목을 기준으로 각 섭동의 가중치를 계산합니다. 이 경우 보통 코사인 거리처엄 섭동 이미지와 원본 이미지 간의 편차가 측정됩니다. 위의 단계에서 생성한 데이터 세트로 결정 트리나 선형 회귀와 같은 내제적으로 해석 가능한 모델을 학습시킵니다. 새로 생성된 섭동 데이터 세트를 사용하여 학습된 모델을 해석함으로써 이미지의 어떤 영역이 청개구리 예측과 더 큰 관련성이 있는지 식별합니다. 이를 달성하려면 모델의 계수나 결정 규칙을 검토하여 모델이 섭동 이미지의 여러 특성에 어떻게 가중치를 적용하는지 이해합니다. 복잡한 모델 대신 훨씬 단순한 서로게이트 모델을 해석하는 것은 이점이 있을 수 있음. *(서로게이트(Surrogate)란 대리, 대체의 의미를 가짐) 하지만 섭동 절차는 데이터 유형에 따라 다름. 이미지의 경우 회색 값과 같은 의미없는 값으로 슈퍼픽셀을 대체합니다. 텍스트의 경우 [미상, UNKNOWN] 단어 토큰과 같은 특수 토큰으로 단어를 대체하여 의미를 제거합니다. 테이블 형식의 데이터의 경우 특성 분포의 데이터를 샘플링하고 정보를 숨기는 대신 유사성에 따라 가중치를 계산합니다.

    Shapley Values: 협동 게임 이론에서 나온 개념 머신러닝 모델의 예측에 대한 개별 특성의 기여를 설명하도록 조정되었음. 게임이론에서 Shapley값은 게임에 대한 기여도에 따라 플레이어들 사이에서 협동 게임의 성과를 분배하는데 사용. 머신러닝에서 플레이어는 특성이고 성과는 모델 예측에 관한 기여 점수입니다. Shapley 값은 사후적 기법임. Shapley갓은 특성 중요도를 설명함에 있어 수학적으로 타당한 방법을 제공하지만, 계산의 복잡성으로 인한 실용적 문제를 야기. 많은 수의 특성에 대한 Shapley 값을 계산하기 쉽지 않은 이유는 특성의 수가 기하급수적으로 증가하기 때문. 따라서, 샘플링된 Shapley, Kernel SHAP, Tree SHAP처럼 Shapley값의 근사치 계산을 위한 알고리즘이 존재.

  • Concept-based Explanation 중요성과 유사하지만, 좀 더 광범위한 여러 개념에 대한 상대적으로 중요한 점수를 출력 긴 코나 힌색 털 등의 개념은 인간에게 좀 더 직관적이고 해석 가능하게 느껴지도록 설계
  • Example-based Explanation 매우 상이한 출력유형 제공. 특성의 중요도나 개념 설명을 반환하는 대신 타겟 모델이 주어진 쿼리 데이터 포인트와 유사하다고 생각하는 데이터 포인트를 제공

Read Count