콘텐츠로 이동

P5-2.2 은닉층(hidden layer)과 표현

Section ID: P5-2.2 Version: v2026.07.20

P5-2.1에서는 다층 신경망(multilayer neural network)이 퍼셉트론 같은 계산 단위를 여러 층으로 쌓아, 입력을 바로 최종 판단으로 보내지 않고 중간 단계를 거치게 만든다는 점을 보았습니다. 이제 질문을 조금 더 구체적으로 바꿔 봅니다.

그 중간 단계에서는 도대체 무엇이 만들어지고 있는가?

이 질문에 답하려는 관점이 바로 표현(representation)입니다. 은닉층은 입력값을 그대로 복사하는 곳이 아니라, 이후 판단에 더 유리한 중간 표현을 내부적으로 만들어 가는 층입니다.

표현 개념을 뒤 장에서 다시 짧게 복습해야 할 때는 개념사전의 표현(representation) 항목을 기준으로 돌아옵니다.

은닉층이 표현을 바꾸는 질문

이 절은 다음 질문을 정리합니다.

  • 은닉층(hidden layer)은 왜 단순한 중간 계산 이상으로 중요하게 다뤄지는가?
  • 표현(representation)을 학습한다는 말은 무엇인가?
  • 층이 깊어질수록 더 추상적인 표현이 생긴다는 말은 어떤 뜻인가?
  • 은닉층을 사람이 읽기 쉬운 이름으로 바로 해석해도 되는가?
  • 왜 딥러닝을 representation learning과 연결해 설명하는가?

표현 학습(representation learning)이라는 더 큰 흐름은 P5-10.1, P5-10.2에서 다시 확장합니다. CNN에서의 필터와 공간 표현은 P5-11.1, P5-11.2에서, attention 기반 표현은 P5-13.1, P5-13.2와 P5-14.1부터 P5-14.5까지의 Transformer 본편에서 다시 연결합니다. 즉, 이번 절은 은닉층을 입력을 다시 적는 내부 표현 층으로 먼저 붙잡는 데 집중합니다.

내부 표현과 중간 특징의 판단 기준

  • 은닉층을 입력과 출력 사이의 표현 변환 층으로 설명할 수 있습니다.
  • 표현(representation)을 원래 입력을 다시 담는 내부 좌표계처럼 이해할 수 있습니다.
  • 층이 깊어질수록 더 복잡하고 추상적인 표현을 만들 수 있다는 점을 말할 수 있습니다.
  • 은닉층의 각 노드에 사람식 이름을 무리하게 붙이면 오해가 생길 수 있다는 점을 이해할 수 있습니다.

왜 은닉층이 중요한가

Part 4의 전통적인 머신러닝에서는 사람이 직접 특징(feature)을 고르는 경우가 많았습니다.

  • 최근 경보 횟수
  • 평균 진동 크기
  • 온도 상승 폭
  • 복구 지연 시간

이런 특징을 사람이 정리해서 모델에 넣습니다. 모델은 그 위에서 회귀나 분류를 합니다.

하지만 딥러닝에서는 질문이 달라집니다.

유용한 특징을 사람이 다 직접 써 주지 않고, 모델이 중간 표현을 내부에서 만들어 가게 할 수는 없을까?

이 지점에서 은닉층이 중요해집니다. 은닉층은 입력을 그대로 넘기는 통로가 아니라, 이후 판단에 더 쓸모 있는 내부 표현을 형성하는 자리로 읽을 수 있습니다.

즉, 딥러닝은 판단 함수를 학습하는 일일 뿐 아니라, 판단에 유리한 표현까지 함께 학습하는 일로 보이기 시작합니다.

표현(representation)은 무엇을 뜻하나

representation이라는 말은 독자에게 추상적으로 들릴 수 있습니다. 여기서는 먼저 다음처럼 이해합니다.

표현은 같은 대상을 모델 내부에서 다시 적어 놓는 방식이다.

예를 들어 설비 상태 데이터를 원래는 네 개 숫자로 넣었다고 생각해 봅니다.

  • 최근 경보 횟수
  • 평균 진동 크기
  • 온도 상승 폭
  • 복구 지연 시간

은닉층을 지나면 모델은 이를 그대로 들고 있지 않을 수 있습니다. 대신 내부적으로는 다음과 비슷한 조합을 더 잘 쓰는 방향으로 바꿔 둘 수 있습니다.

  • 정상 운전 유지 정도와 비슷한 내부 축
  • 고장 전조 위험과 비슷한 내부 축
  • 즉시 점검 필요성과 비슷한 내부 축

물론 실제로 노드 이름이 이렇게 붙는 것은 아닙니다. 하지만 독자 직관으로는 원래 입력을 더 유용한 내부 좌표계로 다시 적는다고 이해합니다.

내부 좌표계라는 말은 왜 유용한가

표현을 내부 좌표계(internal coordinate system)로 비유하면 은닉층의 역할이 더 잘 보입니다.

  • 원래 입력 좌표계에서는 구분이 어려운 대상이
  • 은닉층을 거친 새 좌표계에서는 더 잘 분리될 수 있습니다.

즉, 은닉층은 단순 계산이 아니라 문제를 더 풀기 쉬운 좌표계로 바꾸는 과정처럼 볼 수 있습니다.

이를 아주 간단히 줄이면 다음과 같습니다.

flowchart TD
  A["같은 예시들"]
  B["원래 좌표계<br/>뒤섞여 있어 나누기 어렵다"]
  C["은닉층이 다시 표현한다"]
  D["새 내부 좌표계<br/>더 쉽게 분리된다"]
  E["최종 예측이 쉬워진다"]

  A --> B
  A --> C
  B --> C --> D --> E

이 도식의 핵심은 데이터가 바뀌는 것이 아니라 같은 데이터를 보는 내부 표현 방식이 바뀐다는 점입니다. 원래 좌표계에서는 뒤섞여 보이던 예시들이, 은닉층을 지난 뒤에는 더 나누기 쉬운 좌표계로 다시 적힐 수 있기 때문에 내부 좌표계라는 말이 유용합니다.

층이 깊어질수록 무엇이 달라지나

딥러닝에서 자주 등장하는 설명은 낮은 층은 더 단순한 특징을, 높은 층은 더 추상적인 특징을 잡는다는 말입니다.

이 문장을 아주 조심스럽게 읽어야 합니다.

이 말은 보통 다음 뜻에 가깝습니다.

  • 앞쪽 층은 작은 조합이나 지역 패턴을 먼저 포착할 수 있고
  • 뒤쪽 층은 그 조합들을 다시 묶어 더 큰 패턴이나 더 문제 중심적인 표현으로 바꿀 수 있다

예를 들어 이미지에서는 흔히 다음처럼 설명합니다.

층 수준 직관적 설명
앞쪽 층 선, 모서리, 밝기 변화 같은 작은 패턴
중간 층 간단한 모양 조합
뒤쪽 층 더 큰 부분 구조나 분류에 가까운 표현

텍스트나 표 데이터도 마찬가지 감각으로 읽을 수 있습니다. 물론 실제로 어떤 층이 무엇을 잡았는지는 모델 구조와 데이터에 따라 달라집니다. 중요한 것은 층을 거치며 점점 더 문제에 유리한 내부 표현이 구성될 수 있다는 점입니다.

은닉층을 너무 쉽게 해석하면 왜 위험한가

독자는 은닉층의 각 노드에 이건 안정성, 이건 위험도, 이건 경광등 상태처럼 곧바로 이름을 붙이고 싶어질 수 있습니다. 하지만 이런 해석은 조심해야 합니다.

은닉층의 표현은 종종 다음 특징을 가집니다.

  • 하나의 노드가 한 의미만 담당하지 않을 수 있습니다.
  • 여러 노드가 함께 하나의 성질을 표현할 수 있습니다.
  • 사람이 직관적으로 읽기 어려운 분산 표현(distributed representation)일 수 있습니다.

즉, 은닉층은 사람이 만든 명시적 규칙표가 아니라, 여러 값이 함께 정보를 나누어 담는 내부 공간일 수 있습니다.

이 때문에 representation learning은 강력하지만, 동시에 해석이 어려워질 수 있습니다.

distributed representation이 왜 중요한가

딥러닝 문헌에서 representation learning이 중요하게 다뤄지는 이유 중 하나는 분산 표현(distributed representation)입니다.

다음처럼 이해합니다.

중요한 정보가 하나의 노드에만 들어가는 것이 아니라, 여러 노드의 조합으로 나누어 표현될 수 있다.

예를 들어 어떤 입력의 성질을 하나의 노드가 전부 대표하는 대신:

  • 노드 A는 일부 경향
  • 노드 B는 다른 일부 경향
  • 노드 C는 둘의 조합에서만 의미가 살아나는 신호

처럼 정보를 나누어 가질 수 있습니다.

이런 구조 때문에 신경망은 표현력이 커지지만, 동시에 사람이 “이 한 칸이 정확히 무엇이다”라고 단정하기 어려워집니다.

특징 설계 책임은 어디로 이동하는가

전통적인 머신러닝 모델에서도 특징 조합은 있었습니다. 다만 사람이 다음을 더 직접 통제하는 경우가 많았습니다.

  • 어떤 특징을 넣을지
  • 어떤 전처리를 할지
  • 어떤 거리나 분할 규칙을 쓸지

반면 다층 신경망에서는 모델 내부가 유용한 중간 표현을 더 많이 떠맡습니다.

이 차이는 단순히 도구가 바뀐다는 뜻이 아닙니다. 사람이 직접 고른 특징 위에서 경계나 점수를 조정하던 방식에서, 모델이 은닉층 안에서 판단에 유리한 내부 축을 만들어 가는 방식으로 책임의 일부가 이동한다는 뜻입니다. 그래서 이 절에서 붙잡아야 할 핵심은 전통 모델과 다층 신경망 중 어느 쪽이 더 좋다가 아니라, 최종 판단 전에 문제를 더 잘 나누는 중간 표현이 생긴다는 점입니다.

사례 및 예시

사례 1. 설비 계기판 경고 상태 판별

설비 카메라가 계기판과 경광등이 함께 잡힌 프레임을 읽어 정상 감시, 경고 확인, 즉시 정지 검토 같은 상태를 구분하는 장면을 떠올립니다. 사람도 처음에는 픽셀을 그대로 보지 않고 바늘이 빨간 구간에 가까운가, 경광등이 켜져 있는가, 밸브 손잡이 방향이 평소와 다른가 같은 중간 기준을 머릿속에서 먼저 세웁니다. 이런 운영 영상 판별도 은닉층이 왜 필요한지 보여 주는 좋은 장면입니다.

원래 입력은 픽셀 값들의 긴 목록일 수 있습니다. 하지만 모델은 픽셀 하나하나만 보고 바로 상태를 맞히지 않을 수 있습니다. 예를 들어 바늘이 약간 올라간 압력계, 약하게 켜진 경광등, 조금 돌아간 밸브 손잡이는 각각만 보면 애매할 수 있습니다. 은닉층을 지나며 다음과 같은 내부 표현이 점점 만들어질 수 있습니다.

  • 압력계 바늘이 경고 구간에 가까운가
  • 경광등의 밝은 점멸 패턴이 보이는가
  • 밸브 손잡이 방향이 평상시 위치와 다른가
  • 여러 시각 단서가 동시에 경고 쪽으로 겹치는가

물론 이것도 사람이 붙인 직관적 설명일 뿐입니다. 실제 내부 표현은 더 복잡하고 분산적일 수 있습니다. 하지만 이 비유는 은닉층이 원시 입력(raw input)을 그대로 두지 않고, 더 유용한 표현으로 바꾸어 간다는 점을 잘 보여 줍니다.

즉, 다층 구조는 카메라 프레임을 바로 최종 상태로 보내는 것보다 중간 판단 재료를 먼저 만든 뒤 최종 판단으로 보내는 것에 가깝습니다. 이 점이 퍼셉트론 하나와 다층 구조를 가르는 가장 중요한 차이입니다. 그래서 이 사례에서 확인해야 할 결과는 픽셀 목록을 곧바로 상태 분류하는 관점보다, 중간 표현을 거쳐 최종 판단으로 가는 관점이 왜 필요한지 실제로 설명할 수 있는가입니다.

이 사례의 판단 순서를 작은 흐름으로 다시 압축하면 다음과 같습니다.

flowchart TD
    A["계기판 프레임 입력"] --> B["바늘 / 경광등 / 밸브 단서"]
    B --> C["기존 기준: 최종 상태를 바로 추정"]
    B --> D["은닉층 기준: 내부 축 형성"]
    D --> E["압력 / 경고 / 조치 축"]
    E --> F["더 안전한 최종 상태 판단"]

픽셀을 많이 보면 곧바로 상태를 맞힐 수 있다고 느끼기 쉽지만, 표현 관점에서는 픽셀은 재료일 뿐입니다. 먼저 바늘, 경광등, 밸브 같은 단서가 중간 표현의 일부로 살아나고, 최종 상태 판단은 그 조합을 읽은 결과로 닫힙니다. 비슷한 장면이 헷갈리는 이유도 단순히 픽셀이 비슷해서가 아니라, 어떤 내부 축이 더 강하게 살아나는지에 따라 달라진다고 볼 수 있습니다.

사례 2. 설비 경고 상태 표현

표 데이터에서도 비슷한 일이 일어납니다. 예를 들어 한 설비의 최근 경보 횟수, 평균 진동 크기, 온도 상승 폭, 복구 지연 시간이 함께 들어 있다고 둡니다. 사람은 처음에는 숫자 네 개를 각각 따로 보고 지금은 버틸 만하다, 바로 멈춰야 한다처럼 판단하려 할 수 있습니다. 하지만 실제로는 경보 횟수만 높다고 위험한 것도 아니고, 진동과 온도 상승이 함께 커지며 복구 지연까지 길어질 때처럼 여러 신호가 겹칠 때만 중요한 상태가 드러나는 경우가 많습니다. 은닉층은 이런 입력을 그대로 복사하지 않고 겉보기 출력은 유지되지만 고장 전조가 누적된 상태 같은 더 유용한 내부 표현으로 다시 적는 방향으로 작동합니다.

같은 설비 상태를 원래 입력과 내부 표현 관점으로 나란히 읽으면 차이가 더 잘 보입니다.

관찰 방식 보이는 값 읽기 쉬운 판단
원래 입력 열 경보 횟수 많음, 평균 진동 보통 이상, 온도 상승 , 복구 지연 항목마다 신호가 섞여 있어 바로 결론 내리기 어렵다
은닉층 내부 표현 정상 운전 유지 축 남아 있음, 고장 전조 위험 축 높음 출력은 유지되지만 점검 우선순위가 높은 상태처럼 더 직접적인 구분이 가능해진다

숫자 네 개를 각각 따로 읽으면 경보 하나만 보고 아직 버틸 만하다고 느끼거나, 어떤 조합이 문제인지 흐릿하게 남을 수 있습니다. 은닉층 표현으로 다시 읽으면 여러 입력이 합쳐져 만든 중간 상태를 먼저 보고, 진동, 온도, 복구 지연이 함께 만든 위험 표현이 최종 판단에 얼마나 가까운지 확인합니다. 그래서 이 사례에서 확인해야 할 결과는 원래 숫자 열을 따로 보는 것보다, 여러 신호가 묶인 내부 표현 쪽이 설비 상태를 더 잘 가르는가입니다.

이 두 사례를 한 줄로 묶으면 다음과 같습니다.

은닉층은 원래 입력을 바로 판단하지 않고, 더 나누기 쉬운 내부 표현으로 다시 적는 층이다.

설비 계기판 사례에서는 픽셀이나 윤곽이 비슷하면 곧바로 헷갈린다고만 보기 쉽지만, 은닉 표현까지 보면 바늘 위치, 경광등, 밸브 방향 같은 중간 표현 조합이 왜 정상 감시와 즉시 점검을 가르는지 더 잘 보입니다. 표 데이터 사례에서는 경보 횟수, 진동, 온도 상승, 복구 지연을 각각 따로 보는 대신, 안정성 축과 위험도 축처럼 문제에 더 가까운 내부 상태를 먼저 봅니다. 독자가 먼저 붙잡아야 할 결과는, 은닉층의 핵심이 숫자를 더 계산한다가 아니라 최종 판단 전에 먼저 보게 될 내부 축을 다시 만든다는 점입니다.

두 사례를 한 번에 다시 압축하면, 은닉층과 표현을 읽는 첫 흐름은 다음과 같습니다.

flowchart TD
    A[원래 입력 신호] --> B[바늘, 경광등, 밸브 단서가 섞여 있음]
    B --> C[은닉축이 형성됨]
    C --> D[압력, 경고, 연동 축이 더 선명해짐]
    D --> E[최종 판단이 새 표현을 읽음]

    F[원래 표 신호] --> G[경보, 진동, 온도, 지연이 따로 보임]
    G --> H[은닉 상태로 다시 정리됨]
    H --> I[안정성 축과 위험 축이 더 선명해짐]
    I --> J[최종 판단이 새 표현을 읽음]

이 도식은 사례 1의 시각 단서와 사례 2의 표 신호를 따로 다시 설명하려는 것이 아니라, 두 사례가 공통으로 보여 준 원래 입력 -> 내부 축으로 다시 적기 -> 최종 판단이 더 읽기 쉬워짐 흐름을 한 번에 다시 묶기 위한 것입니다.

연습 및 예제

이번 예제의 목표는 서로 비슷해 보이는 설비 계기판 장면도 은닉층을 지나며 어떤 내부 표현으로 다시 적히는지, 그리고 그 차이가 최종 점수와 다음 판단에 어떻게 연결되는지 비교하는 것입니다.

입력:

  • 계기판 바늘 편차, 경광등 점멸 강도, 밸브 손잡이 이탈 정도를 가진 프레임 4개

출력:

  • 프레임별 은닉 표현
  • 샘플별 최종 점수
  • 어떤 샘플이 비슷한 최종 점수를 내더라도 내부 표현은 다를 수 있는지에 대한 비교

문제 상황:

  • 설비 카메라 프레임은 겉보기로는 모두 약간 이상처럼 보여도, 실제로는 바늘 편차 중심 장면인지 경광등과 밸브 조합 중심 장면인지가 다를 수 있다. ReLU를 거치는 은닉층이 이런 차이를 내부 표현으로 어떻게 다시 적는지 확인해야 한다.

확인할 개념:

  • 은닉층 표현은 단순 합이 아니라 활성화 함수를 거친 뒤 만들어진다
  • 최종 점수는 중간 표현이 어떤 값을 남겼는지에 따라 달라진다
  • 비슷한 최종 점수라도 어떤 은닉축이 주도했는지는 다를 수 있다

입력(input):

위에 정리한 네 프레임과 ReLU를 거치는 은닉층·출력층 가중치를 사용합니다.

코드를 보기 전에 먼저 각 프레임이 어느 은닉 축에서 더 크게 반응할지, 그리고 최종 점수는 비슷해 보여도 왜 다른 내부 상태일 수 있는지 예상해 보면 좋습니다.

프레임 먼저 예상해 볼 반응 예상 이유
needle_dominant_frame pressure_axis가 더 큼 바늘 편차가 크고 경광등 점멸은 약해 압력계 축이 먼저 살아날 가능성이 큽니다.
beacon_valve_frame warning_axis, coordination_axis가 더 큼 경광등과 밸브 조합이 강해 경보·조치 축이 더 크게 반응할 수 있습니다.
combined_stop_frame 세 축이 모두 큼 바늘, 경광등, 밸브가 모두 강해 즉시 정지 검토에 가까운 내부 표현이 동시에 살아날 가능성이 높습니다.
borderline_watch_frame 세 축이 모두 중간 정도 각 신호가 모두 애매하게 남아 있어 어떤 축이 더 주도하는지 바로 읽기 어려울 수 있습니다.

이 표의 목적은 정확한 숫자를 미리 맞히는 것이 아니라, 겉보기로 비슷한 이상 장면도 은닉층에서는 다른 축으로 다시 표현될 수 있다, 최종 점수가 비슷해 보여도 내부 표현과 다음 판단은 다를 수 있다는 점을 먼저 잡는 데 있습니다.

# 설비 계기판 신호가 ReLU 은닉축에서 어떤 내부 표현으로 바뀌고 최종 점수에 반영되는지 보는 예제입니다.
def relu(z):
    return max(0.0, z)

frames = [
    ("needle_dominant_frame", {"needle_deviation": 1.0, "beacon_blink": 0.2, "valve_offset": 0.1}),
    ("beacon_valve_frame", {"needle_deviation": 0.5, "beacon_blink": 0.9, "valve_offset": 0.8}),
    ("combined_stop_frame", {"needle_deviation": 1.1, "beacon_blink": 1.0, "valve_offset": 0.9}),
    ("borderline_watch_frame", {"needle_deviation": 0.7, "beacon_blink": 0.6, "valve_offset": 0.5}),
]

for name, values in frames:
    pressure_axis = relu(
        values["needle_deviation"] * 1.0
        + values["beacon_blink"] * 0.1
        + values["valve_offset"] * 0.2
        - 0.4
    )
    warning_axis = relu(
        values["needle_deviation"] * 0.1
        + values["beacon_blink"] * 1.0
        + values["valve_offset"] * 0.6
        - 0.5
    )
    coordination_axis = relu(
        values["needle_deviation"] * 0.4
        + values["beacon_blink"] * 0.5
        + values["valve_offset"] * 0.9
        - 0.7
    )
    score = (
        pressure_axis * 0.6
        + warning_axis * 0.5
        + coordination_axis * 0.7
        - 0.2
    )

    print(
        f"{name}: "
        f"input=({values['needle_deviation']}, {values['beacon_blink']}, {values['valve_offset']}), "
        f"hidden=({round(pressure_axis, 3)}, {round(warning_axis, 3)}, {round(coordination_axis, 3)}), "
        f"score={round(score, 3)}"
    )

출력에서는 같은 프레임이 hidden 세 축에서 어떻게 다시 표현되고, 그 위에서 score가 어떻게 계산되는지부터 봅니다.

1
2
3
4
needle_dominant_frame: input=(1.0, 0.2, 0.1), hidden=(0.64, 0.0, 0.0), score=0.184
beacon_valve_frame: input=(0.5, 0.9, 0.8), hidden=(0.35, 0.93, 0.67), score=0.944
combined_stop_frame: input=(1.1, 1.0, 0.9), hidden=(0.98, 1.15, 1.05), score=1.698
borderline_watch_frame: input=(0.7, 0.6, 0.5), hidden=(0.46, 0.47, 0.33), score=0.542

숫자 출력은 계산 결과를 알려 주지만, 원본 입력이 은닉층 안에서 어떤 중간값으로 바뀌고, ReLU 뒤에 무엇이 남아 최종 점수로 이어지는지는 단계별 그래프로 나누어 보면 더 잘 보입니다.

프레임별 원본 입력값

첫 그래프는 모델에 들어가는 원본 입력(raw input)입니다. 여기서는 바늘 편차, 경광등 점멸, 밸브 이탈이라는 세 입력값이 아직 그대로 나열되어 있습니다. 이 단계만 보면 각 프레임이 어느 판단으로 이어질지 바로 닫기 어렵습니다.

프레임별 은닉층 전 선형 결합값

두 번째 그래프는 은닉층의 각 축이 입력값에 가중치를 곱하고 편향을 더한 뒤의 값입니다. 0보다 작은 값도 보이는데, 이는 해당 은닉축이 아직 활성화되기 전의 계산 흔적입니다. needle_dominant_frame은 압력 축은 양수로 남지만 경보 축과 조합 축은 0 아래에 있어 다음 단계에서 사라질 준비가 된 상태입니다.

프레임별 ReLU 후 은닉 표현

세 번째 그래프는 ReLU를 지난 뒤 실제 은닉 표현(hidden representation)으로 남은 값입니다. 0보다 작던 값은 0으로 잘리고, 양수로 남은 축만 다음 층으로 전달됩니다. 이 단계에서 beacon_valve_frame은 경보 축과 조합 축이 함께 살아나고, combined_stop_frame은 세 축이 모두 크게 살아납니다.

프레임별 최종 출력 점수

마지막 그래프는 ReLU 뒤 은닉 표현에 출력층 가중치를 다시 적용한 최종 점수입니다. 원본 입력이 곧바로 점수가 된 것이 아니라, 은닉층 전 값과 ReLU 후 표현을 거쳐 출력으로 바뀐다는 점이 핵심입니다.

이 예제에서 중요한 것은 다음입니다.

  • 같은 프레임 입력을 단순히 그대로 쓰는 것이 아니라, 은닉층에서 새로운 표현으로 다시 적습니다
  • 입력 조합이 달라지면 hidden의 세 축도 다른 방식으로 반응합니다
  • 최종 점수는 원본 입력보다 이 중간 표현 위에서 계산됩니다

실행 결과를 어느 축이 더 주도했는가 기준으로 다시 읽으면 차이가 더 잘 보입니다.

프레임 hidden 패턴 score 지금 읽어야 할 핵심
needle_dominant_frame (0.64, 0.0, 0.0) 0.184 바늘 편차 축만 살아나 아직 즉시 정지 검토로는 닫히지 않는다
beacon_valve_frame (0.35, 0.93, 0.67) 0.944 경광등과 밸브 조합 축이 주도해 경고 확인보다 더 강한 개입 신호로 읽힌다
combined_stop_frame (0.98, 1.15, 1.05) 1.698 세 축이 모두 크게 살아 즉시 정지 검토에 가까운 내부 표현이 겹친다
borderline_watch_frame (0.46, 0.47, 0.33) 0.542 세 축이 약하게 겹쳐 아직 경계 감시에 더 가깝다

여기서 특히 needle_dominant_frameborderline_watch_frame은 모두 강한 정지 장면은 아니지만, 내부 표현은 꽤 다릅니다. 하나는 압력계 축만 살아 있고, 다른 하나는 세 축이 약하게 겹칩니다. 같은 약한 이상처럼 보여도 어떤 은닉축이 먼저 살아났는지에 따라 다음 판단이 달라질 수 있다는 점이 바로 은닉층이 원래 입력을 다시 적는다는 말의 실제 계산 감각입니다.

즉, 은닉층은 입력을 더 유용한 내부 표현으로 바꾸는 단계입니다.

출력을 다 읽은 뒤에는 이 입력을 원래 열로 볼지, 은닉축으로 다시 읽을지를 한 번 더 바로 연결해 보는 편이 좋습니다.

needle_dominant_frameborderline_watch_frame은 둘 다 강한 정지 장면은 아니지만, 하나는 압력계 축 중심이고 다른 하나는 여러 축이 얕게 겹친 상태입니다. beacon_valve_framecombined_stop_frame은 둘 다 개입 필요 쪽으로 높지만, 하나는 경광등-밸브 조합이 주도하고 다른 하나는 세 축이 모두 강하게 살아난 상태입니다. hidden 세 축이 원래 세 입력과 다르게 움직인다는 점까지 보면, 모델이 최종 판단 전에 더 유용한 내부 좌표계로 다시 적었다고 읽을 수 있습니다. representation learning의 핵심은 입력을 버리는 것이 아니라 입력을 더 잘 가르는 내부 좌표계로 다시 적는 것입니다.

코드를 한 번 실행한 뒤에는 어떤 프레임이 어느 내부 축을 더 빨리 키우는지 직접 더 바꿔 보는 편이 좋습니다.

다음에 직접 바꿔 볼 값 먼저 볼 출력 해석 질문
borderline_watch_framebeacon_blink0.6에서 0.9로 올린다 warning_axiscoordination_axis가 얼마나 빨리 커지는가 경광등 단서가 커질 때 어떤 내부 축이 먼저 주도권을 잡는가
needle_dominant_framevalve_offset0.1에서 0.6으로 올린다 pressure_axis 중심 장면이 여러 축이 겹친 장면으로 바뀌는가 한 입력 축만 강하던 프레임이 조합 표현으로 넘어가는 지점은 어디인가
최종 score 계산의 편향 -0.20.0으로 바꾼다 같은 hidden 패턴에서도 개입 필요 프레임이 얼마나 늘어나는가 내부 표현은 같아도 최종 판단 기준이 달라지면 운영 해석이 어떻게 바뀌는가

representation learning이라는 말이 왜 나오는가

Yoshua Bengio의 글과 LeCun, Bengio, Hinton의 2015년 글에서는 딥러닝을 단순한 큰 신경망이 아니라, 여러 수준(level)의 표현(representation)을 학습하는 구조로 설명합니다.

다음처럼 정리합니다.

딥러닝의 강점은 단지 파라미터가 많은 데 있지 않고, 문제에 유리한 중간 표현을 여러 층에서 학습할 수 있다는 데 있다.

즉, 딥러닝을 이해하려면 모델의 깊이(depth) 자체보다 깊이가 어떤 표현 변환을 가능하게 하느냐를 보는 편이 더 중요합니다.

언제 표현 설명을 여기서 닫고 다음 장으로 넘기는가

은닉층과 표현을 설명하는 이 절의 책임은 중간 계산이 왜 단순 계산이 아니라 표현 변환으로 읽혀야 하는가를 닫는 데 있습니다. 그다음에는 그 표현을 가능하게 하는 비선형성은 무엇인가로 넘어가야 합니다.

먼저 보이는 신호 여기서 닫아야 하는 해석 바로 다음에 이어질 곳
입력보다 은닉 표현이 더 분리된 축처럼 보인다 내부 좌표계가 바뀌며 문제를 더 풀기 쉬운 표현으로 바뀌고 있다는 뜻입니다. P5-3장의 활성화 함수와 비선형성으로 넘어갑니다.
노드마다 사람식 이름을 바로 붙이고 싶어진다 distributed representation일 수 있으므로 해석을 과도하게 단정하면 안 됩니다. 뒤 Part의 해석 가능성, attention, embedding 사례로 넘깁니다.
모델이 특징을 직접 만들었다는 말이 추상적으로 느껴진다 사람이 설계한 특징 대신 모델이 중간 표현을 학습한다는 점만 여기서 고정하면 됩니다. P5-10 표현 학습 확장으로 이어집니다.
활성화 함수가 왜 필요한지 다시 묻게 된다 표현 설명만으로는 비선형성의 역할이 아직 닫히지 않았다는 신호입니다. P5-3.1부터 P5-3.5까지 바로 연결합니다.

체크리스트

  • 은닉층이 단순 중간 계산이 아니라 내부 표현을 만드는 층이라는 점을 설명할 수 있는가?
  • 표현(representation)과 표현 학습(representation learning)의 연결을 말할 수 있는가?
  • 은닉층(hidden layer)을 입력과 출력 사이의 표현 변환 층으로 설명할 수 있는가?
  • 표현(representation)을 같은 대상을 모델 내부에서 다시 적어 놓는 방식처럼 이해할 수 있는가?
  • 층이 깊어질수록 더 문제에 유리한 내부 표현이 구성될 수 있다는 점을 말할 수 있는가?
  • 왜 내부 표현을 사람식 단어 하나로 곧바로 고정하면 오해가 생길 수 있는지 설명할 수 있는가?
  • 은닉층을 그냥 중간 계산칸처럼만 설명하고 있을 때, 표현을 다시 적는 층이라는 관점을 먼저 떠올릴 수 있는가?
  • representation learning 설명 다음에는 활성화 함수와 비선형성이 이어져야 한다는 흐름을 이해했는가?

출처와 참고 자료