[AIFFEL] 22.Jan.19 - Deep_Learning_Philosophy

Deok Jong Moon·2022년 1월 19일
0
post-thumbnail

오늘의 학습 리스트

LMS

  • 딥러닝의 철학과 본질에 대하여...

  • (https://www.facebook.com/yoshua.bengio/posts/2269432439828350) Yoshua Bengio의 딥러닝 정의인데 관련한 debate가 딥러닝 관련 통찰을 좀 더 clarify 해준다.

  • Deep Learninng == Representational Learning

    • 이 개념 좀 중요하다
    • Yoshua는 internal representation이라는 단어를 쓴다.
  • 사람의 손이 덜 간 데이터를 raw, sensory하다고 표현하고, 개입이 많이 들어간 데이터를 internal, abstract라고 한단다.

  • 행동주의

    • 행동주의: 학습된 행동은 자극의 반복으로 만들어진다
    • 철저히 경험적이고, 실증적인 측면을 강조
    • 그래서 무의식적인(보기 힘든) 면은 배제했다.
    • 사람을 낮게 봄
  • 인지주의

    • 단순한 자극과 반응으로 행동이 이루어지는 게 아니라, 사람의 마음, 즉 정보 처리 체계가 있어 그것을 통해 외부 자극을 받아들이고 그에 맞게 표현한다고 주장
  • 연결주의(Connectionism)

    • 백지 상태에서 시작해 경험을 통해 터득하고, 이것들이 각각의 뉴런에 저장되어 결국엔 서로 연결되고 각각의 가중치가 업데이트되는 학습 방식
      : 딥러닝은 이 연결주의를 따른다.
  • 딥러닝 알고리즘은 결국 거대한 함수이다.

    • 함수의 역할(1) relation
      • y와 x 간의 relation을 뜻한다.
      • y는 x에 종속적이다.
    • 함수의 역할(2) x를 변환시켜준다(Linear Transformation)
      • Linearity의 요건(1)
        • must be lines(not curvy)
        • 여기서 line은 diagonal 같은 것도 포함
      • Linearity의 요건(2)
        • origin should be fixed
      • Linear Transformation의 중요한 개념
        • 변환 후에는 축(grid)를 옮긴다.
        • 그리고 한 벡터는 그 변환을 거치면 옮겨진 축에서 그에 맞는 위치에 가게 된다.
      • 3blue1brown에서 설명하는 걸 나만의 언어로 설명해보면,
        : 초반에 옮기고 싶은 한 좌표의 x, y가 있는데,
        : 여기서 x는 쉽게 보면 (x, 0)이고, y는 (0, y)이다.
        : 근데 둘이 합쳐져서 (x, y)라는 곳에 포인트가 있다고 생각하면 된다.
        : 근데 이것을 다른 곳으로 옮기고 싶다면,
        : 옮기고 싶은 (xˆ, xˆˆ)와 (yˆ, yˆˆ)을 정해서
        : x의 값으로 있던 값(x, 0)에 (xˆ, xˆˆ)를 곱하고, (0, y)값에 (yˆ, yˆˆ)를 곱하면 (x, y)에 있던 포인트는 해당 위치로 옮겨간다.
        : 맞나...? 설명하기 어렵다...
    • 함수의 역할(3) mapping
      • One-to-One(scaler -> f(x) -> scaler)의 경우 입력되는 변수가 단 하나이기 때문에 단변량 회귀(Univariate Regression), 그리고 Many-to-One(vector -> f(x) -> scaler)의 경우에는 입력 변수가 여러 개이므로 다변량 회귀(Multivariate Regression) (출처 : 아이펠)
      • Many-to-Many(vector -> f(x) -> vector)는 주로 분류 문제
  • "Inductive Bias란 데이터를 설명할 수 있는 최적의 함수가 특정한 함수 공간에 존재할 것이라는 가설이다." (출처 : 아이펠)

    • 이것을 시작점으로 해서 어떤 모델을 갖고 이 데이터의 문제를 풀어갈 것인가 생각해야 함
    • 모델을 정했으면 거기서 최적의 function을 찾아간다.
  • feature가 많다고 해서 좋은 건 아닌 것 같다.

    • 예를 들어 이미지의 경우 (세로 * 가로 * 채널) 수만큼이 변수의 갯수가 되는데, 생각해보면 딥러닝 말고 일반 머신러닝 알고리즘은 이 수식을 잘 못 풀 수도 있겠다...
  • XAI(Explainable AI)의 중요성 대두...

    • 설명력과 성능은 약간 trade-off 관계이다.
    • Complexity
      • Decision-tree
      • Falling Rule list
      • linear model
        : 계수의 크기를 보고 설명 가능(L1 규제를 적용하면 더더욱 가능)
  • The Bitter Lesson...(링크)
    : 요지는 인공지능에 쏟아부었던 노력보다 하드웨어의 발전이 인공지능의 도약을 더 도와줬다....

Deep ML

  • 로지스틱함수(시그모이드 함수)의 의미는 분류 문제이지만 연속적인 그래프에서 확률적인 값으로 나타나기 때문에 값이 연속적일 수 있다는 것이다.

  • 비트 연산자
    : boolean indexing 조건으로 할 때 and 대신 &를 써야 하는 이유는 and[True, False, True....] 이런 식 두 개 전체가 True인 것에서 봐야 하는지 요소별로 봐야하는지 의미가 애매모호하다는 것이다.
    : 그래서 이 때는 비트연산자를 써줘서 요소별로 봐줘야 함

  • 최적화가 한 번에 안 되는 이유
    : 데이터를 전부 다 안 상태여도 그것에 제일 맞는 '식'은 우리가 주지 않았으니까.
    : 그 식이 한번에 있으려면 가중치가 한번에 주어져야 하는데,
    : 제일 첫 가중치는 랜덤으로 주어지고, 이것이 딱 최적의 가중치일 확률은 거의 0%니까...
    : 그래서 랜덤한 첫 가중치로부터 최적화를 해가는 것 같다.

  • Stochastic Gradient Descent는 결국엔 Optimization 방법이다.
    : 그런데 이것이 Classifier나 Regressor스러운 알고리즘과 합쳐진 모델을 싸이킷런에서 만들었고 그것들의 클래스 이름이 SGDClassifer나 SGDRegressor이다.

  • SGD는 이 링크가 진짜 좋은 것 같다.
    (https://towardsdatascience.com/stochastic-gradient-descent-explained-in-real-life-predicting-your-pizzas-cooking-time-b7639d5e6a32)

더 공부할 것

  • Fully-Connected-Layer 의미 및 원리
  • Convolutional Layer 의미 및 원리
  • XAI
    : 흥미로워 보인다.

그나저나...Exploration 5도 험난함이 예상된다...

-> 캐글에 제출했는데 갑자기 스코어가 50만점이 넘는 건 뭐지...

profile
'어떻게든 자야겠어'라는 저 아이를 닮고 싶습니다

0개의 댓글