테마 선택

📚 지식 노트

AI·하드웨어·주변기기·게임·컴퓨터 시스템·이론 컴퓨터 과학·수학·개발과 운영·보안·응용 분야에 대해 알아 두면 좋은 내용을 정리한 노트다. 위에서 분야를 고르고 아래에서 노트를 고른다.

머신러닝의 원리

규칙을 손으로 적는 대신 예제에서 규칙을 찾게 하는 방법이 머신러닝이다. 손실을 줄이는 경사 하강, 과적합을 막는 검증, 결과를 재는 지표, 표 데이터에 강한 트리 앙상블까지 계산한 그림으로 따라간다.

목차 (10)
  1. 데이터에서 배운다는 것
  2. 학습의 세 갈래: 지도 · 비지도 · 강화
  3. 손실과 경사 하강
  4. 과적합과 편향–분산, 규제
  5. 데이터 나누기와 교차 검증
  6. 평가 지표: 혼동 행렬, 정밀도·재현율, ROC-AUC
  7. 결정 트리, 랜덤 포레스트, 그래디언트 부스팅
  8. 고전 머신러닝과 딥러닝: 언제 무엇을
  9. 흔한 오해
  10. 핵심 논문

데이터에서 배운다는 것

AI·머신러닝·딥러닝의 관계는 AI 기초에 정리했다. 여기서는 그 가운데 머신러닝이 실제로 무엇을 하는지 본다. 재료는 네 가지다.

  • 특징(feature): 예제 하나를 설명하는 값들. 집이라면 면적·방 수·역까지 거리.
  • 정답(label): 맞히고 싶은 값. 집값, 스팸 여부.
  • 모델: 특징을 받아 예측을 내는 함수. 안에 조절할 수 있는 수(가중치, 파라미터)가 들어 있다.
  • 손실(loss): 예측이 정답과 얼마나 다른지를 수 하나로 잰 값. 학습은 이 값을 줄이는 쪽으로 가중치를 고치는 일이다.

예측 → 손실 → 가중치 수정을 수많은 예제로 되풀이하면, 사람이 규칙을 적지 않아도 모델이 특징과 정답 사이의 관계를 흉내 내게 된다. 단, 배운 것은 어디까지나 학습에 쓴 데이터의 경향이다. 데이터가 치우쳐 있으면 모델도 그대로 치우친다.

특징과 정답이 든 예제를 모델에 넣어 예측을 내고, 정답과의 차이인 손실을 구한 뒤 기울기를 따라 가중치를 조금 고치는 고리특징 x정답 y면적㎡방가격8439.15926.3114412.5모델f(x; w)예측 ŷ = 8.4손실 (ŷ − y)² = 0.49기울기를 따라 w를 조금 고친다이 고리를 수많은 예제로 되풀이하는 것이 학습이다
학습의 고리. 예제를 넣어 예측을 내고, 정답과의 차이(손실)를 구해, 손실이 줄어드는 방향으로 가중치를 조금 고친다.

학습의 세 갈래: 지도 · 비지도 · 강화

  • 지도 학습: 정답이 붙은 예제로 배운다. 연속값을 맞히면 회귀(집값), 부류를 고르면 분류(스팸인가)다. 실무 머신러닝의 대부분이 여기에 속한다.
  • 비지도 학습: 정답 없이 데이터의 구조를 찾는다. 비슷한 것끼리 묶는 군집, 특징 수백 개를 몇 개로 줄이는 차원 축소(PCA 등)가 대표적이다. 정답을 붙이는 비용이 클 때 먼저 데이터를 훑어보는 데 쓴다.
  • 강화 학습: 에이전트가 환경에서 행동하고 보상을 받으며, 앞으로 받을 보상의 합이 커지는 행동 방식을 배운다. 정답 대신 늦게 오는 보상만 있다는 점이 다르다. 게임, 로봇 제어, 그리고 LLM을 사람 선호에 맞추는 단계(RLHF)에도 쓰인다.
지도 학습은 정답이 붙은 점 사이에 경계를 긋고, 비지도 학습은 정답 없는 점에서 무리를 찾으며, 강화 학습은 에이전트가 행동하고 환경이 보상을 돌려주는 고리다지도 학습정답이 붙은 예제분류 · 회귀스팸 판별, 집값 예측비지도 학습정답 없이 구조 찾기군집 · 차원 축소고객 묶기, 시각화강화 학습해 보고 보상으로 배움에이전트환경행동보상보상 합을 최대로게임, 로봇 제어
학습의 세 갈래. 지도 학습은 정답이 붙은 점 사이에 경계를 긋고, 비지도 학습은 정답 없는 점에서 무리를 찾고, 강화 학습은 행동과 보상의 고리에서 배운다.

비지도 학습의 가장 단순한 예가 k-평균이다. 무리 개수 k를 정하고, ① 점마다 가장 가까운 중심에 배정 ② 중심을 자기 점들의 평균 자리로 이동을 되풀이한다. 두 단계 모두 "점과 중심 사이 거리 제곱의 합"을 늘리지 않으므로 언젠가 멈춘다. 다만 처음 중심을 어디 두느냐에 따라 나쁜 답에서 멈출 수 있어, 실제로는 여러 번 돌리거나 시작점을 고르게 흩는 방법(k-means++)을 쓴다.

k-평균 단계 그림: 점 12개와 한쪽에 몰린 중심 3개에서 시작해, 배정과 이동을 되풀이하며 중심이 세 무리 가운데로 옮겨 간다처음시작1회차배정거리 제곱 합145.21회차이동거리 제곱 합79.52회차배정거리 제곱 합55.82회차이동거리 제곱 합40.63회차배정거리 제곱 합19.43회차이동거리 제곱 합6.44회차끝거리 제곱 합6.4중심아직 소속 없음
1 / 8

중심 3개를 아무 데나 놓는다. 일부러 한쪽에 몰아 두었다.

k-평균 군집. 배정(점마다 가장 가까운 중심 고르기)과 이동(중심을 자기 점들의 평균으로 옮기기)을 소속이 바뀌지 않을 때까지 되풀이한다. 중심은 ✕, 무리는 색과 모양(원·네모·마름모)으로 구분한다.

손실과 경사 하강

가중치가 수백만 개라면 하나하나 바꿔 보며 손실을 재는 것은 불가능하다. 대신 손실을 가중치로 미분한 기울기(gradient)를 구한다. 기울기는 손실이 가장 빨리 커지는 방향이므로, 그 반대쪽으로 조금 움직이면 손실이 준다. 이것이 경사 하강이다.

w ← w − 학습률 × 기울기에서 학습률이 한 걸음의 크기다. 너무 작으면 바닥까지 오래 걸리고, 너무 크면 바닥을 건너뛰어 반대편 더 높은 곳에 떨어지며 발산한다. 실제 학습에서는 데이터 전체가 아니라 일부(미니배치)로 기울기를 어림해 빠르게 여러 번 움직이는데, 이를 확률적 경사 하강(SGD)이라 한다. 더 나은 최적화기는 딥러닝 노트에서 다룬다.

경사 하강 단계 그림: 학습률 0.1, 0.4, 1.02로 같은 포물선 손실을 내려가는 세 경로학습률 0.1 · 너무 작음036w = 0.00 · L = 10.00w = 0.60 · L = 6.76w = 1.08 · L = 4.69w = 1.46 · L = 3.36w = 1.77 · L = 2.51w = 2.02 · L = 1.97w = 2.21 · L = 1.62학습률 0.4 · 알맞음036w = 0.00 · L = 10.00w = 2.40 · L = 1.36w = 2.88 · L = 1.01w = 2.98 · L = 1.00w = 3.00 · L = 1.00w = 3.00 · L = 1.00w = 3.00 · L = 1.00학습률 1.02 · 너무 큼036w = 0.00 · L = 10.00w = 6.12 · L = 10.73w = -0.24 · L = 11.53w = 6.37 · L = 12.39w = -0.51 · L = 13.32w = 6.65 · L = 14.32w = -0.80 · L = 15.41
1 / 7

세 경로 모두 w = 0(손실 10)에서 출발한다. 기울기가 음수이니 w를 키우는 쪽이 내리막이다.

경사 하강. 기울기(dL/dw)의 반대 방향으로 학습률만큼 옮기기를 되풀이한다. 학습률이 작으면 느리고, 알맞으면 몇 걸음 만에 바닥(w = 3)에 닿고, 너무 크면 바닥을 건너뛰어 발산한다.

과적합과 편향–분산, 규제

목표는 학습 데이터를 외우는 것이 아니라 처음 보는 데이터에서 잘 맞히는 것(일반화)이다. 아래 그림은 sin 곡선에 잡음을 더한 점 8개에 다항식을 맞춘 결과다. 1차 직선은 학습 점조차 못 따라가는 과소적합, 7차 다항식은 점 8개를 모두 정확히 지나(학습 오차 0.000) 점 사이에서 크게 출렁이는 과적합이다. 검증 오차는 3차가 0.017로 가장 낮고, 7차는 0.218로 크게 나빠진다.

  • 편향(bias): 모델이 너무 단순해서 생기는 체계적인 오차. 1차 직선은 데이터를 아무리 많이 줘도 곡선을 못 그린다.
  • 분산(variance): 학습 데이터가 조금만 달라져도 결과가 크게 흔들리는 정도. 7차 다항식은 점 하나만 옮겨도 곡선 모양이 확 바뀐다.
  • 복잡한 모델일수록 편향은 줄고 분산은 커진다. 그 사이의 균형점을 찾는 것이 편향–분산 트레이드오프다.

규제(regularization)는 복잡한 모델을 쓰되 가중치가 커지는 것에 벌점을 줘 분산을 누르는 방법이다. 손실에 가중치 제곱합을 더하면 L2(릿지), 절댓값 합을 더하면 L1(라소, 쓸모없는 특징의 가중치를 0으로 만든다)이다. 같은 7차 다항식에 작은 L2 벌점만 줘도 검증 오차가 0.036로 내려간다. 데이터를 더 모으는 것, 학습을 일찍 멈추는 것(early stopping)도 같은 효과를 낸다.

같은 학습 점 8개에 1차, 3차, 7차 다항식과 L2 벌점을 준 7차 다항식을 맞춘 네 그림과 각각의 학습·검증 오차1차학습 오차 0.244검증 오차 0.205과소적합3차학습 오차 0.037검증 오차 0.017알맞음7차학습 오차 0.000검증 오차 0.218과적합7차 + L2학습 오차 0.044검증 오차 0.036벌점으로 완화
같은 점 8개(흰 점)에 맞춘 네 모델. 점선은 잡음 없는 참 곡선, 파란 선은 맞춘 다항식이다. 7차는 학습 오차가 0이지만 점 사이에서 참 곡선을 벗어난다.

데이터 나누기와 교차 검증

과적합을 알아채려면 학습에 쓰지 않은 데이터로 재야 한다. 보통 셋으로 나눈다.

  • 학습(train): 가중치를 맞추는 데 쓴다.
  • 검증(validation): 모델 종류, 다항식 차수, 규제 세기 같은 설정(하이퍼파라미터)을 고르는 데 쓴다.
  • 시험(test): 모든 선택이 끝난 뒤 한 번만 성능을 잰다. 시험 점수를 보고 설정을 다시 고치면 시험 데이터에도 과적합해 점수가 부풀려진다.

데이터가 적으면 검증 몫 하나로 고른 결과가 운에 좌우된다. k겹 교차 검증은 학습+검증 몫을 k조각으로 나눠, 조각마다 한 번씩 검증에 쓰고 나머지로 학습해 k개 점수의 평균을 본다. 시간 순서가 있는 데이터(주가, 로그)는 미래로 과거를 맞히지 않도록 시간 순으로 잘라야 하고, 같은 사람의 데이터가 학습과 검증에 함께 들어가지 않게 묶어서 나눠야 한다. 이런 누수(leakage)가 실무에서 흔한 실수다.

전처리도 누수의 통로다. 표준화의 평균·표준편차, 결측값을 채울 중앙값, 특징 선택을 데이터 전체로 구한 뒤 나누면 검증·시험 몫의 정보가 학습에 섞인다. 무작위 특징 1만 개로 정답과 무관한 데이터를 만들어도, 나누기 전에 특징을 고르면 정확도가 0.5가 아니라 0.76쯤으로 부풀려진다는 예가 scikit-learn 문서에 있다. 먼저 나누고, 통계는 학습 몫에서만 구해 나머지에 그대로 적용한다. 스케일링·인코딩 방법 자체는 빅데이터 노트의 전처리 절에 있다.

검증 몫으로 하이퍼파라미터를 고를 때 후보를 격자로 모두 시험하는 격자 탐색보다, 범위 안에서 무작위로 뽑는 무작위 탐색이 같은 횟수로 더 좋은 설정을 찾는 경우가 많다. Bergstra · Bengio(2012)는 대부분의 데이터에서 성능을 크게 좌우하는 하이퍼파라미터는 몇 개뿐이고, 격자는 덜 중요한 축에 시도를 낭비하는 반면 무작위 탐색은 중요한 축의 서로 다른 값을 더 많이 시험하기 때문이라고 설명했다. 앞선 결과를 보고 다음 후보를 고르는 베이즈 최적화도 널리 쓰인다.

데이터를 학습 60%, 검증 20%, 시험 20%로 나누는 방법과, 시험 몫을 떼어 둔 채 나머지를 다섯 조각으로 나눠 조각마다 한 번씩 검증에 쓰는 5겹 교차 검증한 번 나누기학습 60% — 가중치를 맞춘다검증 20%시험 20%5겹 교차 검증 — 학습+검증 몫을 다섯 조각으로 돌려 쓴다1회2회3회4회5회시험마지막에 한 번만검증 몫학습 몫다섯 점수의 평균과 흩어짐으로 설정을 고른다
위: 한 번 나누기. 아래: 5겹 교차 검증. 시험 몫은 끝까지 떼어 두고, 나머지를 다섯 조각으로 나눠 돌아가며 검증한다.

평가 지표: 혼동 행렬, 정밀도·재현율, ROC-AUC

분류 모델은 보통 점수(확률)를 내고, 문턱을 넘으면 양성으로 판정한다. 결과를 네 칸으로 세면 혼동 행렬이 된다. 환자 12명(실제 환자 6명) 예에서 문턱 0.5로 판정하면 다음과 같다.

  • 정확도 = 맞힌 수 / 전체 = 0.75. 양성이 1%뿐인 데이터라면 "전부 음성"이라고만 해도 0.99가 나오므로, 부류가 치우친 문제에서는 정확도만 보면 속는다.
  • 정밀도(precision) = TP / (TP + FP) = 0.71. 양성이라고 한 것 중 진짜 양성의 비율. 헛경보가 비쌀 때(스팸 필터가 중요한 메일을 버리면 곤란) 중요하다.
  • 재현율(recall) = TP / (TP + FN) = 0.83. 진짜 양성 중 찾아낸 비율. 놓치는 것이 비쌀 때(암 검진) 중요하다.
  • F1 = 정밀도와 재현율의 조화 평균 = 0.77. 둘 중 하나가 낮으면 크게 깎인다.

문턱을 낮추면 재현율은 오르고 정밀도는 내려간다. 문턱을 끝에서 끝까지 움직이며 (거짓 양성률, 참 양성률)을 이은 것이 ROC 곡선이고, 그 아래 넓이가 AUC다. AUC는 "양성 하나와 음성 하나를 무작위로 뽑았을 때 양성 점수가 더 높을 확률"과 같아 문턱과 무관하게 순위 매기는 능력을 잰다. 이 예는 0.92이고, 무작위로 찍으면 0.5다. 양성이 아주 드물면 ROC가 실제보다 좋아 보이므로 정밀도–재현율 곡선을 함께 본다. 회귀는 평균 제곱 오차(MSE), 평균 절대 오차(MAE)를 주로 쓴다.

양성이 아주 드문 부류 불균형(사기 거래, 희귀 질환)에서는 모델이 다수 부류만 찍어도 손실이 작아 소수 부류를 무시하기 쉽다. 흔한 대응은 셋이다. 손실에서 소수 부류의 오차에 더 큰 가중치를 주고, 학습 몫에서만 소수 부류를 늘리거나 다수 부류를 줄여 다시 뽑고, 판정 문턱을 0.5에 고정하지 않고 검증 몫에서 비용에 맞게 다시 정한다. 어느 쪽이든 평가는 원래 비율 그대로인 데이터에서 정밀도·재현율로 한다.

환자 12명 예의 혼동 행렬(문턱 0.5)과 정밀도·재현율·F1, 그리고 문턱을 바꿔 가며 그린 ROC 곡선과 AUC예측 양성예측 음성실제 양성실제 음성5TP 맞게 찾음1FN 놓침2FP 헛경보4TN 맞게 거름정밀도 5/7 = 0.71 · 재현율 5/6 = 0.83F1 = 0.77 · 정확도 0.75 (문턱 0.5)참 양성률(재현율)문턱 0.5AUC = 0.9201거짓 양성률
왼쪽: 문턱 0.5의 혼동 행렬과 지표. 오른쪽: 문턱을 바꿔 가며 그린 ROC 곡선. 빨간 점이 문턱 0.5의 자리, 색칠한 넓이가 AUC다.

결정 트리, 랜덤 포레스트, 그래디언트 부스팅

결정 트리는 "x < 4인가?" 같은 질문을 이어 붙여 예제를 나누는 모델이다(자료 구조로서의 트리는 알고리즘 노트에 있다). 매 마디에서 가능한 모든 질문을 시험해, 나눈 뒤 각 쪽이 가장 "한 부류만 남은" 상태가 되는 질문을 고른다. 섞인 정도는 지니 불순도(1 − Σ 비율²)나 엔트로피로 잰다. 결과를 사람이 그대로 읽을 수 있고 특징의 단위를 맞출 필요도 없지만, 깊게 키우면 학습 데이터를 외워 과적합하기 쉽다.

점 14개를 x 기준과 y 기준으로 두 번 갈라 세 구역으로 나누는 결정 트리와 그 나무 모양예아니오x < 4 ?14개 · 지니 0.46y < 5.6 ?8개 · 지니 0.47예아니오6개 · 지니 05개 · 지니 03개 · 지니 0
결정 트리. 왼쪽 평면을 지니 불순도가 가장 많이 줄어드는 기준(빨간 점선)으로 두 번 갈랐다. 오른쪽은 같은 분할을 나무 모양으로 그린 것으로, 잎마다 한 부류만 남았다.

트리 하나는 불안정하니 여럿을 합친다(앙상블). 방법은 두 갈래다.

  • 랜덤 포레스트(배깅): 데이터를 복원 추출한 여러 표본과, 마디마다 무작위로 고른 일부 특징으로 깊은 트리를 수백 그루 따로 키워 투표(평균)한다. 서로 다르게 틀리는 트리를 평균하니 분산이 준다. 설정을 별로 만지지 않아도 잘 돌아가는 튼튼한 기준선이다.
  • 그래디언트 부스팅: 얕은 트리를 차례로 키운다. 다음 트리는 앞 트리들이 남긴 오차(정확히는 손실의 기울기)를 맞추고, 그 결과를 학습률만큼 줄여 더한다. 편향을 조금씩 깎는 방식이다. XGBoost는 여기에 규제 항, 결측값 처리, 병렬·대용량 처리를 더해 널리 퍼졌고, LightGBM·CatBoost가 뒤를 이었다.
그래디언트 부스팅 단계 그림: 계단 모양 예측이 회차마다 점들에 가까워지고 오른쪽 막대의 학습 오차가 줄어든다0369시작: 평균평균 제곱 오차 2.091회차평균 제곱 오차 1.182회차평균 제곱 오차 0.953회차평균 제곱 오차 0.774회차평균 제곱 오차 0.595회차평균 제곱 오차 0.476회차평균 제곱 오차 0.37회차별 학습 오차
1 / 7

처음 예측은 모든 점의 평균 2.85인 수평선이다. 평균 제곱 오차 2.09.

그래디언트 부스팅(제곱 오차). 앞 모델이 남긴 잔차(빨간 선)를 다음 그루터기가 맞추고, 그 결과에 학습률 0.5를 곱해 더한다. 약한 모델 여럿을 차례로 쌓아 강한 모델을 만든다.

고전 머신러닝과 딥러닝: 언제 무엇을

이미지·소리·글처럼 원시 신호에 공간·시간 구조가 있고 데이터가 아주 많으면 딥러닝이 압도적이다. 특징을 사람이 설계하지 않아도 망이 직접 배우기 때문이다. 반면 열마다 뜻이 정해진 표 데이터(고객 정보, 거래 기록, 센서 집계)에서는 지금도 그래디언트 부스팅 트리가 신경망과 같거나 더 낫다는 비교 연구가 많고, 학습도 빠르고 설정도 덜 까다롭다.

  • 데이터가 수백~수천 건뿐이고 결정 근거를 설명해야 한다면 선형·로지스틱 회귀나 작은 트리가 낫다. 계수와 분기를 그대로 보여 줄 수 있다.
  • 글·이미지 문제라도 처음부터 학습하기보다 이미 학습된 큰 모델을 가져와 조금 더 학습시키는(미세 조정) 것이 보통이다. LLM과 생성 모델 노트가 그 이야기를 잇는다.
  • 어떤 경우든 "가장 많은 부류로 찍기", "평균으로 찍기" 같은 단순한 기준선부터 세워, 복잡한 모델이 그보다 얼마나 나은지로 판단한다.
표 데이터는 그래디언트 부스팅, 이미지·소리·글은 딥러닝, 데이터가 적고 설명이 중요하면 선형 모델이나 작은 트리부터 시도한다표 데이터열마다 뜻이 있는 값그래디언트 부스팅XGBoost · LightGBM이미지 · 소리 · 글공간 · 시간 구조가 있음딥러닝사전 학습 모델 미세 조정데이터가 적다설명이 중요할 때선형 · 로지스틱 회귀작은 결정 트리어느 쪽이든 단순한 기준선부터 세우고, 그보다 나은지로 판단한다
데이터 모양에 따라 먼저 시도할 모델. 정답이 아니라 출발점이다.

흔한 오해

  • "정확도 99%면 좋은 모델이다" — 양성이 1%면 전부 음성이라고만 해도 99%다. 기준선과 비교하고, 부류별 정밀도·재현율을 함께 본다.
  • "중요도가 높은 특징이 결과의 원인이다" — 특징 중요도는 예측에 많이 쓰였다는 뜻일 뿐 인과가 아니다. 원인과 함께 움직이는 다른 값을 대신 잡았을 수 있고, 그 값을 바꾼다고 결과가 바뀌지는 않는다.
  • "데이터는 많을수록 무조건 낫다" — 정답이 틀린 예제, 실제 쓰임과 다른 분포의 데이터는 많아도 도움이 안 되거나 해가 된다. 양보다 깨끗한 정답과 실제와 닮은 분포가 먼저다.
  • "시험 점수가 곧 배포 뒤 성능이다" — 시험 몫은 과거 데이터에서 뗀 것이다. 배포 뒤 사용자·계절·입력 장치가 바뀌면 분포가 옮겨 가(데이터 드리프트) 성능이 서서히 떨어지므로, 입력 분포와 성능을 계속 지켜보고 주기적으로 다시 학습한다.
  • "딥러닝이 고전 머신러닝을 모두 대체했다" — 표 데이터에서는 지금도 트리 앙상블이 강하다(위 절).

핵심 논문

딥러닝 쪽 논문은 딥러닝 노트, 분야 전체의 흐름은 논문 노트에 있다.

논문연도요지원문
Support-Vector Networks (Cortes · Vapnik)1995두 부류 사이 여백이 가장 넓은 경계를 찾고, 커널로 비선형 경계까지 다루는 SVM을 정리했다. 딥러닝 전까지 분류의 표준이었다.Springer
Random Forests (Breiman)2001복원 추출 표본과 무작위 특징 선택으로 키운 트리를 투표시키면 트리 하나보다 훨씬 안정적이라는 것을 보이고, 특징 중요도 측정법도 제안했다.Springer
Greedy Function Approximation: A Gradient Boosting Machine (Friedman)2001부스팅을 "함수 공간에서의 경사 하강"으로 보고, 아무 미분 가능한 손실에나 쓸 수 있는 그래디언트 부스팅의 틀을 세웠다.Project Euclid
Human-level control through deep reinforcement learning (Mnih 외, DQN)2015화면 픽셀과 점수만 보고 아타리 게임 수십 종을 사람 수준으로 하는 에이전트를 만들어, 신경망과 강화 학습의 결합을 대중화했다.Nature
XGBoost: A Scalable Tree Boosting System (Chen · Guestrin)2016규제 항을 넣은 목적 함수, 희소·결측값을 고려한 분할, 캐시와 병렬 처리를 묶어 그래디언트 부스팅을 대용량에서도 빠르게 돌렸다.arXiv
Why do tree-based models still outperform deep learning on tabular data? (Grinsztajn 외)2022여러 표 데이터 벤치마크에서 트리 앙상블이 신경망보다 나은 이유를 쓸모없는 특징, 불규칙한 함수 모양 등에서 찾았다.arXiv