권예영

권예영님의 아티클

권예영

권예영

Hyperparameters

"Hyperparameters"

신경망을 통해 학습을 하게 되면, 쉽게 설명하기 어려운 많은 문제들을 해결할 수가 있을 것 같은데, 안타깝게도 잘 안 되는 경우도 많다. (신경망이 복잡할수록 이 문제는 더 커진다.) 이는 신경망의 학습 방법이나 구조의 문제가 아니라, 신경망의 hyperparameter들이 제대로 설정되지 못해, 학습이 효과를 발휘하지 못하기 때문이다.
이것은 마치 사람들이 학습할 때, 학습에 좋은 환경이 조성이 되어 있어야 학습이 효과적으로 되는 것과 비슷하다고 생각하면 된다. 맹목삼진지교를 떠올려보면 좋을 비유가 될 것 같다.

이번 class에서는 신경망이 좋은 결과를 내기 위해서 반드시 고려해야 할 hyperparameter들에 대해 살펴볼 예정이다.


신경망이나 기계 학습에서의 hyperparameters란?

그간 class를 통해 신경망의 가중치(weight)나 바이어스(bias) 값을 알아내는 것이 신경망 학습의 목표라고 배웠는데, 이 hyperparameter라는 것들이 갑자기 튀어나오니 뭔가 무시무시한 변수가 또 있는가 하고, 좀 당황스러울 수도 있겠다.
하지만, 우리는 이번 class에서 "학습 진도율(η)"이나 "일반화(regularization) 변수(λ)" 등 hyperparameter들에 대해서 이미 살펴본 적이 있다.
학습 진도율이나 일반화 변수가 엉뚱하게 설정이 되면, 신경망을 통한 학습의 결과가 그리 좋지 못하거나 기대 이하의 학습 결과가 나올 수 있는 것이다.

1
0
권예영

권예영

SoftMax 함수

신경망 Activation Function – "SoftMax"

신경망에서 뉴런의 활성 함수(activation function)로 주로 sigmoid 함수를 사용한다.

sigmoid 함수를 사용하는 이유는 [Part II, Neural Networks] 3, Basic Theory에서 살펴본 것처럼, 단순하게 step function이나 linear function을 사용할 때보다 훨씬 많은 일을 할 수 있기 때문이다. sigmoid 함수는 입력단이나 hidden layer에 주로 사용 되며, 출력단에서도 사용 된다.

하지만, 실제 신경망의 응용에서는 출력단에 SoftMax 함수를 더 많이 사용 하며, 특히 분류기(classifier) 관련 application은 SoftMax 함수를 쓰면 훨씬 좋다.

이번 class에서는 SoftMax 함수에 대해 살펴볼 예정이다.

SoftMax에 대한 정의

SoftMax는 수식으로 정리하면 아래 식과 같다.

σ(z)j=ezj∑k=1Kezkfor j=1,...,K\sigma(z)_j = \frac{e^{z_j}}{\sum_{k=1}^{K} e^{z_k}} \quad \text{for } j = 1, ..., Kσ(z)j​=∑k=1K​ezk​ezj​​for j=1,...,K

위 식은 K-차원을 갖는 벡터 zzz를 (0,1) 범위를 갖는 σ(z)\sigma(z)σ(z)로 치환시키는 것과 같다. 자세히 보면, 확률 분포와 같다는 것을 알 수가 있으며, logistic regression이라고도 불린다.

위 식을 좀 더 살펴보자.

ZkZ_kZk​에 대해 편미분을 실시하면, j=kj = kj=k일 때는 양수이고, j≠kj \neq kj=k일 때는 음수가 된다. 즉, ZkZ_kZk​를 증가시키면 해당 뉴런의 출력값 σ(z)\sigma(z)σ(z)는 증가하고, 다른 뉴런의 출력값은 감소하게 되는 성질을 갖게 된다.

위 성질은 강화 학습(reinforcement learning)에 매우 유용하다. 강화 학습([Part 1, Machine Learning] 4. Reinforcement Learning을 참고)이라는 학습 결과에 대한 상과 벌을 보상(reward)으로 학습을 진행한다는 개념이기 때문에 SoftMax의 개념과 맞아떨어진다고 볼 수 있다.

이 수식은 어떤 의미를 가질까? 그리고 sigmoid를 사용할 때와 어떤 차이가 있는 걸까?

Sigmoid를 사용하면, 해당 뉴런으로 들어오는 입력들과 바이어스에 의해 출력이 결정이 된다.

하지만 SoftMax를 사용하면, 해당 뉴런으로 들어오는 입력들과 바이어스에 의해 출력이 결정이 되는 구조는 비슷하지만, 다른 뉴런의 출력값과의 상대적인 비교를 통해 최종 출력값이 결정된다는 점이 다르다.

이것을 전문 용어로는 “non-locality”라고 부른다.

SoftMax의 수식을 살펴보면 알 수 있는 것처럼, 모든 뉴런의 출력값들의 합하면 ‘1이 되기 때문에 평균화(normalization)의 효과를 얻게 된다.

그렇기 때문에 문자 인식이나 숫자 인식과 같은 분류를 목적으로 하는 신경망의 최종단에 SoftMax 함수를 쓰면, 해당 값이 나올 확률을 알 수가 있으며, 가장 큰 값이 나오는 쪽으로 분류가 될 수 있다.

또한 특정 항목의 변화가 최종 출력에 어떤 영향을 끼치는지를 바로 파악 가능한 효과도 덤으로 얻을 수 있다.

이번 class에서는 신경망의 활성 함수로 사용하는 SoftMax 함수의 개념과 이것에 대해 살펴보았다. 다음 class에서는 신경망의 학습의 시간 및 질을 결정하는 Hyper-parameter에 대해 살펴볼 예정이다.

1. 다중 클래스 분류 문제에서의 SoftMax 사용

SoftMax 함수는 다중 클래스 분류(multiclass classification) 문제에서, 모델이 여러 클래스 중에서 하나를 선택해야 할 때 사용됩니다. 예를 들어:

  • 이미지 분류: 고양이, 개, 새 등의 여러 클래스 중에서 주어진 이미지가 어떤 클래스에 속하는지 예측하는 문제.

  • 자연어 처리: 문장의 감정을 분류할 때 긍정, 부정, 중립과 같은 여러 클래스 중 하나를 선택하는 문제.

이러한 경우, SoftMax 함수는 로짓(logit) 값을 확률로 변환하여 각 클래스에 속할 확률을 계산합니다.

2. SoftMax가 작동하는 방식

  1. 로짓 값 계산:

    • 신경망이나 머신러닝 모델의 마지막 출력층에서 각 클래스에 대한 로짓 값(출력값)이 계산됩니다. 이 값들은 정규화되지 않은 상태이며, 클래스에 속할 가능성을 나타냅니다.

    • 예를 들어, 모델이 어떤 이미지에 대해 고양이, 개, 새의 로짓 값을 각각 [2.0, 1.0, 0.1]로 계산했다고 가정해봅시다.

  2. SoftMax 함수 적용:

    • SoftMax 함수는 이 로짓 값들을 확률로 변환합니다. 각 클래스에 대한 확률은 아래 수식처럼 계산됩니다:

    σ(z)j=ezj∑k=1Kezk\sigma(z)_j = \frac{e^{z_j}}{\sum_{k=1}^{K} e^{z_k}}σ(z)j​=∑k=1K​ezk​ezj​​

    • 예를 들어, 고양이, 개, 새에 대한 확률을 계산하면 각각의 확률 값이 나옵니다. 이 값들은 항상 0과 1 사이의 값이며, 모든 확률 값의 합은 1이 됩니다.

      • 고양이 확률: e2.0e2.0+e1.0+e0.1\frac{e^{2.0}}{e^{2.0} + e^{1.0} + e^{0.1}}e2.0+e1.0+e0.1e2.0​

      • 개 확률: e1.0e2.0+e1.0+e0.1\frac{e^{1.0}}{e^{2.0} + e^{1.0} + e^{0.1}}e2.0+e1.0+e0.1e1.0​

      • 새 확률: e0.1e2.0+e1.0+e0.1\frac{e^{0.1}}{e^{2.0} + e^{1.0} + e^{0.1}}e2.0+e1.0+e0.1e0.1​

    계산 결과로 고양이가 예를 들어 0.7, 개가 0.2, 새가 0.1이라는 확률을 얻을 수 있습니다.

  3. 결정:

    • 최종적으로 SoftMax 함수가 계산한 확률 값 중에서 가장 높은 확률을 가진 클래스를 모델이 예측 값으로 선택합니다.

    • 위 예시에서 고양이가 70% 확률로 가장 높으므로, 모델은 "이 이미지는 고양이다"라고 예측합니다.

3. 모델 학습에서의 역할

SoftMax 함수는 주로 모델의 출력 값에 적용되지만, 모델 학습 과정에서도 중요한 역할을 합니다.

  1. 크로스 엔트로피 손실 함수와 결합:

    • SoftMax 함수는 크로스 엔트로피 손실 함수(Cross-Entropy Loss)와 함께 자주 사용됩니다.

    • 모델이 예측한 확률과 실제 클래스 간의 차이를 측정하여 모델이 얼마나 정확한지 평가하는데 사용됩니다.

    • 예를 들어, 실제 정답이 고양이(즉, [1, 0, 0]의 벡터)이고, 모델의 SoftMax 출력이 [0.7, 0.2, 0.1]이라면, 이 둘의 차이를 계산하여 손실을 구합니다. 이를 통해 모델은 예측이 얼마나 정확한지 평가되고, 그에 따라 가중치 업데이트를 통해 성능을 향상시킵니다.

  2. 다중 클래스 문제 해결:

    • SoftMax는 여러 클래스 중 하나를 선택해야 할 때 매우 유용합니다. 모든 클래스에 대한 확률을 계산한 후 가장 가능성이 높은 클래스를 선택하기 때문에, 분류 문제에서 효율적으로 사용됩니다.

4. SoftMax의 장점

  1. 확률 기반 해석: SoftMax 함수는 결과를 확률 값으로 변환해주므로, 예측이 얼마나 신뢰할 수 있는지 해석할 수 있습니다. 예를 들어, 모델이 0.9라는 높은 확률로 특정 클래스를 예측했다면, 이는 매우 신뢰할 수 있는 예측임을 의미합니다.

  2. 다중 클래스 분류에 적합: 여러 클래스를 분류해야 하는 문제에서 SoftMax는 각 클래스에 속할 확률을 계산하여, 가장 가능성이 높은 클래스를 선택할 수 있도록 도와줍니다.

  3. 정규화: SoftMax는 출력값을 정규화하여 모든 확률의 합이 1이 되도록 합니다. 이를 통해 클래스 간 비교를 할 수 있습니다.

5. 실제 사용 예시

  • 이미지 분류: CNN(Convolutional Neural Networks) 같은 이미지 분류 모델에서 마지막 출력층에 SoftMax를 사용하여 고양이, 개, 자동차 등 여러 클래스를 분류합니다.

  • 자연어 처리(NLP): 텍스트에서 감정을 분류하거나, 문장의 주제를 분류하는 문제에서도 SoftMax를 사용하여 각 클래스에 속할 확률을 계산합니다.

결론:

SoftMax 함수는 다중 클래스 분류 문제에서 모델이 여러 클래스 중 하나를 선택할 확률을 계산하는 데 사용됩니다. 이 함수는 모델의 예측값을 확률로 변환하여, 가장 높은 확률을 가진 클래스를 예측 결과로 선택하게 합니다. 머신러닝에서 모델이 분류 문제를 학습하고 예측할 때, SoftMax는 예측 값의 확률 기반 해석을 가능하게 하고, 이를 통해 더 나은 성능을 끌어낼 수 있습니다.


SoftMax 함수가 강화 학습(Reinforcement Learning)과 잘 맞는 이유는, 확률 기반의 행동 선택과 탐험과 활용 간의 균형을 효과적으로 조절하는 특성 때문입니다. 이를 구체적으로 설명하겠습니다.

1. 강화 학습에서의 행동 선택:

강화 학습에서는 에이전트가 환경에서 행동을 선택하고, 그에 따라 보상(reward)을 받아 학습하는 과정이 진행됩니다. 이때, 에이전트는 가능한 여러 행동(action) 중에서 하나를 선택해야 하는데, SoftMax는 이러한 상황에서 각 행동의 선택 확률을 계산하는 데 유용합니다.

SoftMax 함수가 강화 학습에 적합한 이유:

확률 기반의 행동 선택: SoftMax는 각 행동에 대해 확률 분포를 생성합니다. 즉, 각 행동에 부여된 값(보상 예상값 또는 Q-값)을 바탕으로 행동을 선택하는 확률을 계산해줍니다. 이렇게 확률적으로 행동을 선택하는 것은 강화 학습에서 매우 중요한데, 이는 에이전트가 항상 가장 높은 보상만을 추구하는 것이 아니라 다양한 행동을 탐색할 수 있게 해줍니다.

2. 탐험(Exploration)과 활용(Exploitation)의 균형:

강화 학습의 중요한 목표 중 하나는 탐험(Exploration)과 활용(Exploitation) 사이의 균형을 맞추는 것입니다.

탐험(Exploration): 에이전트는 새로운 행동을 시도하고, 이를 통해 아직 알지 못하는 환경을 학습해야 합니다.

활용(Exploitation): 에이전트는 이미 학습한 정보를 바탕으로 가장 큰 보상을 줄 수 있는 최적의 행동을 선택해야 합니다.

SoftMax 함수는 이 두 가지 요구를 균형 있게 조절해줄 수 있습니다. 탐험과 활용의 균형이 중요한 이유는, 에이전트가 항상 최대 보상을 주는 행동만을 선택하면 새로운 행동을 시도하지 않게 되고, 반대로 항상 새로운 행동만을 시도하면 보상이 높은 행동을 충분히 활용하지 못하게 되기 때문입니다.

SoftMax의 역할:

보상의 차이에 따라 확률적으로 행동 선택: SoftMax는 보상이 큰 행동에 더 높은 확률을 부여하면서도, 보상이 낮은 행동에도 일정 확률을 부여합니다. 즉, 항상 최선의 행동만 선택하는 것이 아니라, 때로는 새로운 행동을 시도할 확률도 부여하게 됩니다.

보상의 차이가 크다면, 확률이 더 명확하게 나뉘고, 보상의 차이가 적다면 모든 행동이 선택될 확률이 고르게 분포됩니다.

예를 들어, 두 행동이 각각 80점과 70점의 보상을 줄 수 있다면, 80점이 더 자주 선택되겠지만 70점도 일정한 확률로 선택될 수 있습니다. 이를 통해 다양한 행동을 탐험할 수 있는 기회를 제공합니다.

3. Q-값과 SoftMax의 결합:

강화 학습에서 사용되는 대표적인 알고리즘 중 하나인 Q-러닝에서는 각 행동에 대한 Q-값(행동의 기대 보상)이 계산됩니다. SoftMax는 이 Q-값을 확률로 변환하여 에이전트가 행동을 선택할 때 사용합니다.

Q-값이 클수록 해당 행동이 선택될 확률이 커집니다. 하지만, Q-값이 낮은 행동도 0이 아닌 확률로 선택될 수 있어 탐험의 기회를 제공합니다.

이는 Epsilon-Greedy와 같은 방식과는 차이가 있습니다. Epsilon-Greedy는 일정 확률로 무작위 행동을 선택하는 반면, SoftMax는 각 행동의 Q-값에 따라 확률적으로 선택을 수행합니다. 즉, 보상의 크기에 따른 비례적 선택을 유도하므로, 탐험과 활용의 균형을 더 세밀하게 조정할 수 있습니다.

4. 보상에 대한 민감도 조절:

SoftMax 함수는 행동의 선택 확률을 계산할 때 온도 매개변수(temperature parameter)를 사용해 행동 선택에 대한 민감도를 조절할 수 있습니다.

온도 매개변수 τ\tauτ (temperature)는 SoftMax 함수의 분모에 영향을 줍니다. 이를 통해 에이전트가 탐험과 활용 사이에서 더 자유롭게 선택할 수 있게 도와줍니다.

τ\tauτ 값이 크면, 모든 행동의 확률이 비슷하게 분포되며 탐험이 많이 일어납니다.

τ\tauτ 값이 작으면, 보상이 큰 행동에 더 높은 확률이 부여되어 활용이 많이 일어납니다.

따라서, SoftMax 함수는 강화 학습에서 온도 매개변수를 통해 에이전트가 탐험과 활용 간의 균형을 유연하게 맞출 수 있도록 돕습니다.

5. 정리:

SoftMax 함수는 강화 학습에서 확률적으로 행동을 선택하는 데 유용합니다. 이는 항상 최적의 행동만을 선택하지 않고, 새로운 행동을 탐색할 기회도 제공해줍니다.

탐험과 활용의 균형을 유지할 수 있게 하여, 에이전트가 학습 과정에서 최적의 성능을 발휘할 수 있도록 합니다.

온도 매개변수를 사용하여 에이전트의 행동 선택에 대한 민감도를 조절할 수 있으며, 보상의 크기에 따라 각 행동의 선택 확률을 차별화할 수 있습니다.

이러한 이유로 SoftMax 함수는 강화 학습에서 매우 효과적으로 작동하며, 다양한 행동을 탐색하면서도 보상이 큰 행동을 적절히 활용할 수 있는 기회를 제공합니다.


문자 인식 및 숫자 인식에서의 사용:

문자 인식이나 숫자 인식과 같은 문제에서는 여러 가지 가능한 문자나 숫자 중 하나를 선택해야 합니다.

예를 들어, 손글씨 숫자 인식 문제에서는 '0'부터 '9'까지의 숫자 중 하나를 인식해야 합니다. SoftMax 함수는 각 숫자에 대해 확률을 계산하고, 가장 높은 확률을 가진 숫자를 최종 결과로 선택하게 합니다.


0과 1사이에서 상대적인 분포로 최대한 확률높은 선택지를 나타낸다.

다른 선택지를 배제하지 않고 확률적인 분포로 조정이 가능하기에 또한 상대비교적 특징때문에(각각의 선택지가 서로에게 영향을 준다) 강화학습과의 시너지가 좋다. (다양한 행동을 탐색하고 실험하며 상벌로 파악할 수 있기 때문에)

1
0
권예영

권예영

Cross-Entropy Cost Function에 대해(학습 속도 저하를 줄이는 솔루션)

출처: 라온피플 아카데미 블로그

신경망(Neural Network) Cost Function으로써의 "Cross-Entropy Cost Function"

[Part III., Neural Networks 최적화] 5. 학습 속도 저하 현상의 원인에서는 신경망의 학습 속도 저하 현상의 원인에 대해서 살펴보았다.
마치 산 정상에서 공을 떨어뜨리면 경사가 클수록 빨리 굴러 떨어지는 것처럼, 오차가 클수록 학습 속도가 빨라야 할 것 같은데 유감스럽게도 그렇지 못하다.

이것은 신경망의 cost function으로 흔히 사용되는 MSE(평균제곱오차, Mean Square Error)와 활성함수로 Sigmoid 함수를 사용하는 경우, Sigmoid 함수의 특성과 결합하면서 문제가 생기기 때문이다.

image.png

Sigmoid 함수의 미분 값= σ′(z) (MSE가 큰 오차에 민감하게 반응하는 특성을 지니고 있는데 Sigmoid 함수는 극단값을 0과 1에 매우 가깝게 수렴해 학습에 오차가 나는 것이다.)

그렇다면 cost function으로 MSE 방식 대신에 다른 함수를 사용하고 비슷한 효과를 얻을 수는 없는 것일까?

그 주인공이 바로 이번 Class의 주인공인 cross-entropy cost function이다. MSE와 비슷하게 표현하기 위해 ACE(Average Cross-Entropy)라고도 부른다.


Cross-Entropy의 역사

Cross-Entropy라는 다소 괴상한 이름은 1997년 Rubinstein이 희소 사건의 확률을 추정하기 위한 용도로 발표되었는데,
후에 희소 사건뿐만 아니라, 일반적인 조합 최적화(combinatorial optimization)에도 적용이 가능하다는 것이 밝혀지면서 널리 쓰이게 되었다.

원래 엔트로피(Entropy)는 클라우지우스가 열역학 제2의 법칙, 즉 “열은 높은 온도에서 낮은 온도로만 흐른다”는 것을 설명하기 위해 고안된 개념이지만, 1877년 볼츠만에 의해서 확률적인 방법으로 새롭게 정의되었으며, 열과 관계 없는 자연 현상도 설명할 수 있게 되었다.

현재는 분야를 가리지 않고 쓰이는 용어가 되었으며 (심지어는 철학에서도), 자연의 변화와 방향을 가리킬 때 사용된다.

특히, 신경망(Neural Networks)에서 Cross-Entropy는 손실 함수로 활용되어 모델이 예측한 확률 분포와 실제 값 사이의 차이를 계산하는 데 사용됩니다. 이는 모델이 얼마나 잘 예측하고 있는지 평가하는 데 중요한 역할을 합니다.


신경망에서의 Cross-Entropy의 활용

Information theory에서 엔트로피는 확률분포의 무작위성(randomness)을 설명하는 용도로 사용이 되며,
확률분포 p를 갖는 랜덤 변수 X를 표현하기 위한 최소의 비트 수를 나타내며 아래와 같이 표현된다.

image.png

Cross-Entropy는 2개의 확률 분포의 차이를 나타내는 용도로 정의가 되었다.
이 이름이 생소하다면, cross-correlation의 개념을 연상해보면 좋을 것 같다.

Cross-correlation은 두개의 함수와의 correlation 관계를 나타낼 때 사용이 된다.

반면에 CE(Cross-Entropy)는 두개의 확률 분포가 얼마나 가까운지 혹은 먼지를 나타내며,
2개의 확률 분포 p(x)p와 m(x)에 대한 CE는 아래와 같이 나타난다.

image.png

위 식에서 p와 m이 같다면, Entropy와 식이 같아진다는 것을 알 수가 있다.
즉, 차이가 클수록 값은 많이 나오고, 두 개가 같아질 때 최소한의 값이 나온다.

위 수식을 잘 생각을 해보면, cost function처럼 기대값과 실제 연산값의 차가 클수록 큰 결과가 나오고,
항상 양의 값이기 때문에 cost function으로 사용이 가능함을 알 수 있다.


Cross-Entropy 수식의 의미:

이 수식은, 여러 예측 값들이 실제 값과 얼마나 차이가 나는지를 계산하고, 그 차이를 크게 부각시켜서 학습에 반영합니다. 예측이 틀릴수록 오차가 더 커지고, 맞으면 오차가 작아져서, 모델이 더 잘 예측할 수 있도록 돕습니다.

  • 시그마 기호: 여러 예측 값을 모두 더해서 전체적인 오차를 구합니다.

  • 로그 함수: 예측이 틀렸을 때, 그 틀린 정도를 강조해서 더 큰 오차로 반영합니다.

  • Cross-Entropy는 최종적으로, 모델이 얼마나 잘 예측했는지를 평가하는 방법이며, 틀릴수록 더 큰 패널티를 줍니다.


다음의 간단한 예를 보자.
랜덤 변수 X의 실제 분포가 p이고,
이것을 m1과 m2로 추정할 경우라고 하면, 어느 것이 더 좋은 추정일까?

image.png

겉보기에는 별 차이가 없어 보이지만,
Cross-Entropy를 구하여 수치적 관점에서만 살펴보자.
그럼, Entropy H(p) = 1.8601이고, Cross-entropy H(p, m1) = 2.01, H(p, m2) = 2.0201다.
결과만 놓고 본다면, m1이 좀 더 좋은 추정이 된다.


MSE보다 CE CostFunction이 속도는 빠르지만 학습효과의 측면에선 아직 모르겠다.

1
0
권예영

권예영

학습 속도 저하 현상의 원인 (MSE와 SIgmoid함수, Gradient Descent의 특성)

참고: 라온피플 아카데미 네이버 블로그

신경망 학습 속도의 문제점 - “학습 속도 저하”

옛날에 요줌싸가 어린이는 키를 쓰윽 써서 동네 한 바퀴를 돌게 했고, 그 이후는 아이가 크게 망신을 당해 다음부터는 요줌을 가리도록 해주기 위함이라고 했다. 물론 지금은 잘못된 이론이라는 말도 있다.

이처럼, 사람은 크게 망신을 당할 정도로 큰 실수를 하게 되면, 그 충격으로 인해 다음부터는 그 실수를 하지 않게 되는 경향이 있다. 즉, 큰 에러가 발생할수록 학습이 잘 되는 경우가 종종 있다. (물론, 늘 그런 것은 아니지만)

신경망 학습에서도 이런 일이 일어날까? 원래 나와야 할 값(훈련 데이터의 결과 값)과 망에서 실제로 수행을 한 결과와의 차이가 크면 학습을 정말로 잘 하게 될까?

일반적으로 신경망의 cost function으로 사용하는 MSE(평균제곱오차, Mean Square Error) 방식을 사용하면 유감스럽게도 그렇지 못하다.

왜 그럴까? 이는 cost function으로 MSE 방식을 사용하고 활성함수로 Sigmoid 함수를 사용하는 경우 Sigmoid 함수의 특성 상 발생하면서 문제가 생기기 때문이다.

MSE와 Sigmoid의 결합 문제

MSE와 Sigmoid 함수를 함께 사용할 때 문제가 되는 이유는 다음과 같습니다:

  1. Sigmoid 함수의 출력이 포화될 때:
    Sigmoid 함수는 출력값을 0과 1 사이로 압축합니다. 그러나 입력 값이 매우 크거나 매우 작을 경우, 그 출력값이 거의 0이나 1에 가까워집니다. 이때 미분 값이 0에 가까워져, 가중치 업데이트를 위한 기울기 값이 사라지게 됩니다. 그 결과 역전파를 통해 오류를 전파할 때 가중치가 거의 업데이트되지 않고, 학습 속도가 매우 느려집니다.

  2. MSE의 큰 오차에 민감한 특성:
    MSE는 큰 오차에 민감하게 반응합니다. Sigmoid 함수의 포화 구간에서 MSE는 큰 오차를 계산하게 되지만, Sigmoid 함수가 오차에 대해 거의 반응하지 않기 때문에 큰 오차에도 불구하고 학습이 제대로 이루어지지 않습니다. 즉, MSE는 오차를 크게 반영하려 하지만 Sigmoid의 특성상 그 오차가 효과적으로 반영되지 않는 문제점이 있습니다.

예시로 설명

  • 예시: 만약 모델의 실제 출력값이 0.1이고 예측값이 0.9라면, MSE는 이 차이를 크게 보고 학습률을 높이려고 할 것입니다. 그러나, Sigmoid 함수는 출력이 0.9에 매우 가까울 경우, 이미 포화 상태에 도달해 기울기가 0에 가까워져 학습이 거의 이루어지지 않게 됩니다. 그 결과, MSE가 큰 오차를 인식해도 Sigmoid 함수의 특성 때문에 학습이 잘 이루어지지 않는 현상이 발생합니다.

-> MSE가 큰 오차에 민감하게 반응하는 특성을 지니고 있는데 Sigmoid 함수는 극단값을 0과 1에 매우 가깝게 수렴해 학습에 오차가 나는 것이다. 오차에 대한 계산이 명확히 이루어지지 않아, 역전파도 제대로 이뤄지지 않는다는 뜻이다.


Gredient Descent

image.png

경사 하강법은 오차 함수의 기울기를 따라 가중치를 업데이트하며 최적의 값을 찾아가는 방식입니다. 학습 초기에는 오차가 크기 때문에 기울기가 크고, 이로 인해 가중치 업데이트가 빠르게 진행됩니다. 하지만 학습이 진행될수록 오차가 줄어들고, 기울기도 점점 작아지면서 가중치의 변화가 점점 미세해지게 됩니다.

이 과정이 마치 오목한 그릇에서 공이 바닥으로 굴러가는 것과 비슷합니다. 처음에는 기울기가 크기 때문에 공이 빠르게 움직이지만, 바닥 근처로 갈수록 기울기가 작아지면서 공이 느리게 움직입니다. 이처럼 학습이 수렴하는 과정에서 속도가 저하되며, 이는 경사 하강법의 본질적인 특성입니다. 결국, 최적값에 가까워질수록 학습 속도가 느려지는 것이 경사 하강법을 사용할 때 나타나는 학습 속도 저하의 주요 원인입니다.

-> 학습이 수렴하는 과정에서 속도가 저하된다. 예측값과 실제값이 유사해지는 과정에서 속도가 저하되므로 학습의 효율이 개선되지 않는 문제가 발생된다. 이런 경우에는 적절한 지점에서 stop을 해줘야 한다.

1
0
권예영

권예영

Dropout

출처: 라온피플 아카데미 네이버 블로그

Hidden Layer의 개수가 많아질 경우의 장단점?
일반적으로 신경망에서 hidden layer의 개수가 많아지면, 즉 deep neural network이 되면, 더욱 많은 문제를 해결할 수 있도록 학습 능력이 좋아진다.

하지만, 망의 크기가 커지면 커질수록 overfitting에 빠질 가능성이 높아지고, 신경망에 대한 학습 시간도 길어지는 문제가 있으며, 적절한 결과를 도출하려면 훈련 데이터의 양 또한 늘려야 한다.

1. Overfitting의 가능성

예시: 당신이 학생에게 수학 문제를 가르치는 상황을 생각해봅시다. 학생이 문제 유형 몇 개만 집중적으로 공부하고 이를 완벽하게 암기하면 시험에서는 그 문제에 맞는 답을 쉽게 낼 수 있습니다. 그러나 시험에서 새로운 문제 유형이 나오면 그 학생은 준비되지 않은 문제를 제대로 풀지 못합니다. 이는 학생이 문제를 암기한 것이지, 문제의 원리를 이해한 것이 아니기 때문에 일어나는 현상입니다.

신경망도 비슷합니다. hidden layer가 많아지면 네트워크가 매우 복잡해지고, 이는 훈련 데이터에 너무 잘 맞는, 즉 훈련 데이터의 특정 패턴에만 맞춘 과도하게 복잡한 모델을 만들 가능성이 커집니다. 이 경우 새로운 데이터(테스트 데이터)에 대해 성능이 떨어지는데, 이를 overfitting이라고 부릅니다. 모델이 데이터를 '암기'하는 것처럼 작동하기 때문에 새로운 상황에서는 잘 대응하지 못합니다.

2. 학습 시간이 길어짐

예시: 만약 어떤 학생에게 복잡한 수학 문제를 풀게 하고, 각 단계에서 세부적인 설명을 듣는다고 생각해봅시다. 단순한 문제는 빨리 해결되지만, 복잡한 문제는 각 단계에서 더 많은 시간이 필요합니다. 비슷하게 신경망에서 hidden layer가 많아지면 각 layer가 데이터를 처리하는데 시간이 더 많이 걸립니다. 또한 각 layer 간에 전달되는 정보가 많아지므로 계산해야 할 파라미터도 기하급수적으로 늘어납니다. 따라서 학습 시간도 길어지게 됩니다.

3. 훈련 데이터 양의 필요성

예시: 만약 당신이 5개의 수학 문제를 가지고 학생에게 수업을 할 때, 간단한 공식만 가르쳐도 그 문제들을 해결할 수 있다면 적은 학습량으로 충분히 수업이 끝날 수 있습니다. 하지만 100개의 복잡한 문제를 가르쳐야 한다면 더 많은 예시와 설명, 그리고 문제 풀이 시간이 필요하게 됩니다. 신경망에서도 layer가 많아지고 복잡해질수록 더 다양한 패턴을 학습하려면 더 많은 데이터가 필요합니다. 데이터가 적으면 모델이 충분한 일반화 능력을 가지지 못하고 특정한 패턴에 맞춰지기 때문에 성능이 저하될 수 있습니다.

결론적으로:

  • Overfitting: 너무 많은 layer로 인해 훈련 데이터에 과도하게 맞춰진 모델이 생성됩니다.

  • 학습 시간: 더 많은 파라미터를 학습해야 하므로 학습 시간이 길어집니다.

  • 데이터 양: 모델이 일반화하려면 더 많은 패턴을 학습해야 하므로 더 많은 데이터가 필요합니다.

이러한 이유로, hidden layer를 많이 추가하는 것에는 장점이 있지만, 동시에 적절한 규제 방법(Dropout 같은 기법)과 충분한 훈련 데이터가 필요합니다.


Dropout 개요
이렇게 망의 크기가 커질 경우 Overfitting 문제를 피하기 위한 방법이 dropout이며, 논문이 발표된 지 채 10년이 넘지 않았다.

Dropout은 아래의 그림 (a)에 대한 학습을 할 때, 망에 있는 모든 layer에 대해 학습을 수행하는 것이 아니라 그림 (b)와 같이 망에 있는 입력 layer나 hidden layer의 일부 뉴런을 생략(dropout)하고 줄여든 신경망을 통해 학습을 수행한다.

일정한 mini-batch 구간 동안 생략된 망에 대한 학습을 끝내면, 다시 무작위로 다른 뉴런들을 생략(dropout) 하면서 반복적으로 학습을 수행한다.

image.png

Dropout 효과
그럼 이렇게 dropout을 하는 이유는 무엇이고, dropout은 과연 효과가 있을까?

① Voting 효과
Dropout을 하는 첫 번째 이유는 투표(voting) 효과 때문이다.
일정한 mini-batch 구간 동안 줄어든 망을 이용해 학습을 하게 되면, 그 망은 그 망 나름대로 overfitting이 되며,
다른 mini-batch 구간 동안 다른 망에 대해 학습을 하게 되면, 그 망에 대해 다시 일정 정도 overfitting이 된다.

이런 과정을 무작위로 반복을 하게 되면, voting에 의한 평균 효과를 얻을 수 있기 때문에,
결과적으로 regularization과 비슷한 효과를 얻을 수 있게 되는 것이다.

② Co-adaptation을 피하는 효과

또 다른 이유로 co-adaptation을 피하는 효과를 들 수 있다.

Regularization에서 살펴본 것처럼, 특정 뉴런이 바이어서 가중치 값을 갖게 되면

그것의 영향이 커지면서 다른 뉴런들의 학습 속도가 느려지거나

학습이 제대로 진행이 되지 못하는 경우가 있다.

하지만 dropout을 하면서 학습을 하게 되면,

결과적으로 어떤 뉴런의 가중치나 바이어서 특정 뉴런의 영향을 받지 않기 때문에

결과적으로 뉴런들이 서로 동조화(co-adaptation)이 되는 것을 피할 수 있다.


1. 투표(Voting) 효과

Dropout을 통해 신경망에서 일부 뉴런을 무작위로 제외하면서 학습을 반복하게 되면, 각기 다른 작은 신경망들이 독립적으로 학습됩니다. 이렇게 여러 작은 신경망들이 조금씩 다른 방식으로 학습한 결과를 평균적으로 합산하면, 더 일반화된 학습 결과를 얻을 수 있습니다. 이는 과적합을 방지하는 데 도움이 됩니다. 즉, 여러 작은 모델의 투표를 통해 더 나은 성능을 도출하는 효과입니다.

2. 동조화(Co-adaptation) 방지 효과

신경망에서 특정 뉴런이 다른 뉴런에 지나치게 의존하게 되면, 학습이 왜곡되거나 불균형하게 이루어질 수 있습니다. Dropout은 뉴런 간의 의존성을 줄여, 각 뉴런이 독립적으로 학습하도록 만들어줍니다. 결과적으로 네트워크가 더 강건하고 일반화된 학습을 할 수 있게 도와줍니다. 이를 통해 특정 뉴런에 과하게 의존하는 현상인 동조화를 방지합니다.

특정 학습 데이터나 자료에 영향을 받지 않는 보다 강건한(robust)한 망을 구성할 수가 있게 되는 것이다.

이것은 마치 오랜 시간 동안 지구상에 존재하는 생명체들이

유전적 복제와 아닐 양성 식을 통해 유전자를 결합하고

보다 강인한 유전자들이 자연의 선택을 받아 살아남는 것과 마찬가지이다.

1
0
권예영

권예영

[전액무료 자기계발 챌린지] 스타트업에 바로 투입될 수있는 인재가 되고 싶다면?

챌린지 목표🎢

  • 자기계발러와 취준생들은 명확한 목표를 가지고 있지만, 체계적인 실행에 어려움을 겪고 있습니다. 따라서 목표를 실현하는 과정에서 경험 기록, 계획의 일관성, 성과 추적, 그리고 지속적인 동기부여를 제공 할 예정입니다. 🎯

대상👾

  • 자기계발러: 자신의 발전을 위해 목표를 세웠지만, 이를 구체적이고 체계적으로 관리하지 못하는 사람들

  • 취준생: 취업을 위한 목표는 있지만, 체계적인 준비와 실행을 이어가는 데 어려움을 겪는 사람들

마이라인 챌린지를 참가하면 어떤 활동을 하게 될까요?🎈

  • AI 기반 인생 설계 플랫폼을 통해 목표 설정부터 일상 기록, 피드백까지 전반적인 자기계발 과정을 관리하게 됩니다.🤖📝

  • 데일리 체크리스트 기록과 달성도 평가, AI 분석으로 개인의 발전 상황을 추적하고, 체계적인 피드백을 제공하여 목표 달성을 이룰 수 있습니다.🏅

  • 취업 준비생을 위해, 기록된 데이터를 바탕으로 맞춤형 커리어 관리와 AI 자소서 작성 지원까지 제공하여, 취업 목표에 도달할 수 있도록 돕습니다.📑✍️

진행방식➡️

  • 챌린저들이 기록하고 싶은 경험을 기록하고 그에 따른 체크리스트와 데일리 회고록 작성 📔✅

  • 멘토와의 대화를 통한 주기적인 1대1 케어 🗣️💬

챌린지 종료 후 제공되는 리워드 🏅

❤️ 개인 프로필 요약

  • "당신의 커리어를 한눈에!"

  • 경험을 시간 순으로 정리한 시각화 연혁표 제공. </aside>

🧡 체크리스트 달성도

  • "목표 달성 상황을 퍼센트로 확인하세요!"

  • 개인 목표 달성도와 다른 사용자의 목표 달성도 퍼센트를 비교하는 시각자료 </aside>

💛 하루 회고록 요약

  • "매일의 성찰, 주요 키워드로 요약!"

  • 회고록에서 자주 사용한 키워드 순위 및 개인화 된 특징 리포트 </aside>

💚 챌린저들간의 비교 그래프

  • "비슷한 사람들과 나의 성과 비교!"

  • 희망 직군과 직무가 비슷한 사용자간의 체크리스트 달성도를 비교하는 시각자료 </aside>

💙 강점 및 개선점 요약 및 단기 커리어 로드맵

  • "AI가 제공하는 맞춤형 피드백"

  • 강점과 개선점 피드백 제공

  • "향후 1개월 단기 목표와 활동 추천!"

  • 개선점 기반 단기 목표 제안 </aside>

<aside> 💡

부가적인 리워드 (선택사항)

  • "필요할 때, 최대 3회까지 지원되는 자기소개서 첨삭 서비스!"

  • 챌린지에 참여한 모든 분들께 제공되는 한정된 기회!✨

image.png
3
0
권예영

권예영

'훅:일상을 사로잡는 제품의 비밀'을 읽고

5Why를 통해 사람들 내면에 숨어있는 감정동기를 찾아야 한다.

사람들은 왜 인스타그램을 이용할까?

5Why를 사용했을때 결론적으로 소외되고 싶지 않은 불안감 때문이다.

이 부정적인 감정의 동기가 촉발되었을 때, 소비자가 우리의 제품을 이용할 수 있게끔 '습관화' 시켜둬야 한다.


기존에 시장에 강력한 경쟁자가 있다면, 그 경쟁자를 뚫기 위해선 제품의 성능이 9배는 좋아야 한다.

사람들은 이미 그 제품에 적응을 해버렸기 때문이다.

그만큼 적응이라는 것이 중요한 것이다.

결론적으로 사용자들의 일상을 사로잡기 위해선

'특정 부정적인 감정에 대한 습관을 잘 설계하는 것'이 중요하다.

이 방식을 통해 고객을 불러들였을 경우 고객생애가치가 높아지고, 여기서 입소문 마케팅을 타게되면 게임 끝이다.

소비자가 소비자를 불러들여 점점 제품을 이용하게 되기 때문이다.


부정적인 감정(본능)-> 이를 해소하는 습관설계 -> 입소문 마케팅 사이클

1
0
권예영

권예영

지능적 훈련 데이터

출처: 라온피플 아카데미 블로그

image.png

위 그림은 왼쪽의 기 확보된 데이터를 반시계 방향으로 15도 회전하여 얻은 데이터이다.
이렇게 affine transform(기하학적 변환)을 거치고 나면,
다양한 데이터를 얻을 수 있다.
Affine transform은 아래 그림과 같은 4가지 연산이 있으며,
이것들을 조합하면 많은 훈련 데이터를 확보할 수가 있다.

image.png

  • 이동(Translation): 이미지를 특정 방향으로 평행 이동.

  • 스케일링(Scaling): 이미지를 축소하거나 확대.

  • 회전(Rotation): 이미지를 특정 각도로 회전.

  • 기울이기(Shearing): 이미지를 비대칭으로 변형.

② Elastic Distortion을 이용한 지능적 훈련 데이터 생성.

마이크로소프트 社에서는 효과적인 훈련 데이터 생성을 위해 "elastic distortion"이라는 방법을 개발하였고 특히 출원을 하였다.

Elastic distortion이란 위 그림의 affine transform과 같은 단순한 변형이 아니라, 아래 그림처럼 다양한 방향으로의 displacement vector를 만들어내고 그것을 통해 좀 더 복잡한 형태의 훈련 데이터를 만들어 낼 수 있게 되었으며, 필기체 인식에 유용한 훈련 데이터 집합이 될 것이라는 것을 자명하다.

image.png

"Displacement vector"를 쉽게 설명하자면, 어떤 물체나 점이 원래 위치에서 다른 위치로 '얼마나' 그리고 '어느 방향으로' 이동했는지를 나타내는 벡터입니다. 예시를 통해 구체적으로 설명드리겠습니다.

예시 1: 간단한 이동

  1. 원래 점의 좌표가 (2, 3)이라고 가정합니다.

  2. 이 점에 displacement vector (3, 4)를 적용하면, 이 점은 새로운 좌표 (5, 7)로 이동합니다.

    • 여기서 (3, 4)는 변화량을 의미합니다.

    • 즉, x축으로 3만큼, y축으로 4만큼 이동했다는 뜻입니다.

이것이 displacement vector의 기본적인 개념입니다. 벡터는 두 가지 중요한 정보를 제공합니다:

  1. 방향: x축과 y축으로 각각 어떻게 이동했는지.

  2. 크기: 얼마나 이동했는지.

예시 2: Elastic Distortion에서의 displacement vector

Elastic Distortion에서는 이미지를 더 복잡하게 변형하기 위해 이런 displacement vector를 다양한 방향과 크기로 사용합니다. 단순히 이미지를 전체적으로 회전하거나 크기를 조절하는 것이 아니라, 이미지의 여러 부분을 각기 다른 방식으로 이동시키는 것입니다.

예를 들어:

  1. 이미지에 있는 글자의 한 부분은 오른쪽 위로 약간 이동시키고,

  2. 글자의 다른 부분은 왼쪽 아래로 이동시키는 식입니다.

이러한 변형은 displacement vector가 각 부분에 어떻게 적용되느냐에 따라 결정됩니다. 결과적으로 이미지를 복잡하게 비틀거나 늘리면서, 원래 형태와 유사한 변형을 만들어냅니다. 이를 통해 더 많은 훈련 데이터를 만들어 인공지능이 다양한 패턴을 인식할 수 있도록 도와줍니다.

이 방식은 특히 손글씨 인식 같은 데서 유용한데, 사람이 쓴 글씨는 같은 글자라도 모양이 조금씩 다르기 때문입니다. Elastic Distortion은 이를 흉내 내서 다양한 변형된 데이터를 생성하고, 인공지능이 그 변형을 더 잘 이해할 수 있도록 훈련시킵니다.

요약:

  • Displacement vector는 물체나 점을 이동시키는 방향과 크기를 나타내는 벡터입니다.

  • Elastic Distortion은 이미지의 각 부분을 각각 다른 방향과 크기로 이동시키기 위해 displacement vector를 사용하여, 이미지의 복잡한 변형을 만들어냅니다.

√ 기타 분야에서의 지능적 훈련 데이터 만들기

음성 인식의 경우에도 비슷하게 다양한 훈련 데이터를 만들어 낼 수 있다.
가령, 잡음이 없는 상태에서 녹음을 한 뒤에,
다양한 배경 잡음과의 합성을 통해,
다양한 훈련 데이터 집합을 만들어 낼 수 있다.

또한 속도를 빠르게 혹은 느리게 조절하는 방법과 위 방법과의 조합으로
역시 많은 훈련 데이터 집합을 얻어낼 수가 있다.

학습에서 좋은 결과를 얻으려면 대표성을 갖는,
전문적인 용어로 orthogonal한 벡터 집합을 얻는 것이 중요하며,
환경을 잘 이해하고 있다면, 적응 환경에 맞게 지능적인 방법으로
훈련 데이터를 획득하는 것 역시 효율적임을 알 수 있다.

  • Orthogonal한 벡터 집합을 얻는 것이 중요하다: 다양한, 중복되지 않는 데이터가 있어야 학습이 잘 된다.

  • 환경을 잘 이해하고 맞춤형 데이터를 수집하는 것이 효율적이다: 모델이 사용될 실제 환경을 잘 파악하고, 그 환경에 맞는 데이터를 준비하면 모델의 성능을 높일 수 있다.

결론적으로, 이 문장은 다양한 데이터를 수집하고, 모델이 작동할 환경을 잘 고려한 훈련 데이터를 준비하는 것이 성공적인 학습에 중요하다는 의미입니다.

3
0
권예영

권예영

L2&L1 Regularization

  1. L2 Regularization

Regularization은 (정확하게 표현하면, L2 regularization은) 아래의 수식으로 표현할 수 있다.

image.png

위 수식에서 C₀는 원래의 cost function이며,

n은 훈련 데이터의 개수,

λ는 regularization 변수, w는 가중치를 나타낸다.

위 식처럼 regularization 항목이 들어가면,

학습의 방향이 단순하게 C₀ 값이 작아지는 방향으로만 진행되는 것이 아니라,

w 값도 역시 최소가 되는 방향으로 진행을 하게 된다.

이렇게 정의된 cost function을 가중치 w에 대해서 편미분을 수행하면,

결과적으로는 새로운 가중치는 아래와 같이 결정이 된다.

image.png

위 식에서 (1 - ηλ/n)w는
원래의 w 값에 (1 - ηλ/n) 항목을 곱한 형태가 되기 때문에
값이 작아지는 방향으로 진행을 하게 된다.

이를 "weight decay"라고 한다.
이 "weight decay"에 의해 특정 가중치가 비이상적으로 커지고
그것이 학습의 효과에 큰 영향을 끼치는 것을 방지할 수 있다.

--> 특정 가중치가 비이상적으로 커지는 것을 weight decay를 통해 줄이는 과정이다.

  1. L1 Regularization

Regularization은 통상적으로 L1과 L2 regularization으로 나눠지게 된다.

앞서 살펴본 수식은 L2 regularization에 속하고,

L1 regularization은 2차항 대신에 1차항이 오며, 식은 아래와 같다.

image.png앞서 살펴본 것과 마찬가지로 가중치 w에 대해서 편미분을 수행하면,

결과적으로는 새로운 가중치는 아래와 같이 결정이 된다.

image.png결과적으로 위 식을 보면,

weight 값 자체를 줄이는 것이 아니라

w의 부호에 따라 상수 값을 빼주는 방식으로 regularization을 수행한다.

-> L1 정규화에서 절댓값을 더하는 방식이 핵심인 이유는, 이 방식이 가중치를 0으로 만드는 특성을 가지고 있어 모델을 희소화시키고 불필요한 특성들을 제거할 수 있기 때문입니다. 절댓값을 사용하면 가중치가 0에 가까워지면서 모델이 중요한 정보에만 집중할 수 있게 되어, 과적합을 방지하고 성능을 향상시키는 데 도움이 됩니다.


L2 정규화와 L1 정규화의 차이점을 정리하자면:

  • L2 정규화:

    • 모든 가중치들이 튀지 않도록 균형 있게 줄이는 역할을 합니다.

    • 가중치의 제곱합을 비용 함수에 추가하여, 각 가중치가 너무 커지지 않도록 합니다.

    • 이렇게 하면 가중치가 과도하게 커지는 걸 막고, 모든 가중치들을 적절히 작게 유지하게 만듭니다. 즉, 특정 가중치가 지나치게 크거나 작은 값을 가지지 않게 하여 모델 전체의 균형을 맞추는 역할을 합니다.

    • 다만, 가중치들이 0이 되지는 않으며 단지 크기를 줄이는 데 그칩니다. 그래서 모든 변수(특성)를 고려하면서도 균형을 맞추려는 효과를 줍니다.

  • L1 정규화:

    • 튀는 가중치를 아예 없애버리는 역할을 합니다.

    • 가중치들의 절댓값을 비용 함수에 추가하여, 중요하지 않은 가중치들을 0으로 만들어버립니다.

    • 즉, 불필요한 변수들은 아예 제거하고, 중요한 변수들만 남깁니다. 이는 모델을 더 간결하게 만들고, 오버피팅을 방지하는 데 도움을 줍니다.

    • 결과적으로 L1 정규화는 모델에서 필요 없는 특성들의 영향을 제거하여, 희소성(sparsity)을 유도하는 특성을 가지고 있습니다. 즉, 많은 특성들 중 몇몇 중요하지 않은 특성들의 가중치를 0으로 만들어 모델을 단순하게 만듭니다.

요약:

  • L2 정규화는 가중치의 균형을 맞추는 방식으로 특정 가중치가 너무 커지지 않도록 부드럽게 제어합니다.

  • L1 정규화는 중요하지 않은 가중치들을 완전히 0으로 만들어버림으로써, 모델을 간결하게 하고 튀는 가중치를 아예 없애버립니다.

이 차이 때문에 L1 정규화는 특성 선택(feature selection)에 유리하고, L2 정규화는 모든 특성을 균형 있게 사용하는 데 유리합니다. 두 방식은 오버피팅을 막는 중요한 역할을 하지만, 그 방식과 효과가 다르다는 점에서 차이가 있습니다.

1
0
권예영

권예영

정규화 1

√ Overfitting 해결을 위한 Regularization 방식

이 때 사용하는 방식이 regularization이다.
Regularization은 ‘정규화’라는 말로 번역이 되기도 하지만,
‘일반화’라고 번역을 하는 것이 더 적합한 것 같다.

이 용어는 기계 학습뿐만 아니라 통계에서도 흔히 사용이 되는 용어이다.
Regularization은 일정의 penalty 조건에 해당이 된다.
지난 [Part III. Neural Networks 최적화] 1. Overfitting의
‘오캄의 면도날(Occom’s razor)’ 이론에서 소개했던 것처럼,
대체로 복잡한 쪽보다는 간단한 쪽으로 선택을 유도한다.

통상적으로 기계학습이나 통계적 추론을 할 때
cost function 혹은 error function이 작아지는 쪽으로 진행을 하게 된다.
단순하게 작아지는 쪽으로만 진행을 하다 보면,
특정 가중치 값이 커지면서 오히려 결과를 나쁘게 하는 경우도 있다.
이와 같은 regularization 방식이 학습에 더 좋은 학습 결과를 가져오는 경우를 보여주는 그림이다.

image.png

오버피팅 (Overfitting)의 문제점이 학습의 성능을 떨어뜨린다.

문제 설명: 너무 단순하게 오차(에러)를 최소화하려고만 하면, 특정 가중치(weight) 값이 지나치게 커져서 모델이 데이터를 너무 잘 맞추려고 하다 보니, 오버피팅이 발생할 수 있습니다. 이는 훈련 데이터에 과도하게 맞춰진 모델이 새로운 데이터를 제대로 처리하지 못하게 만드는 원인입니다.

예시 1: 집값 예측 모델

만약 우리가 집값을 예측하는 모델을 만들고 있다고 가정해봅시다. 이 모델은 다양한 입력값(예: 집의 면적, 위치, 방의 개수 등)을 기반으로 가격을 예측합니다.

  • 오버피팅 상황: 모델이 너무 훈련 데이터에 맞추기 위해 노력한 나머지, 특정 변수(예: 집의 면적)에 가중치를 지나치게 부여하게 됩니다. 이로 인해 모델은 면적이 크면 무조건 비싼 집이라고 예측하려 하고, 다른 중요한 요인(위치나 시설 등)은 무시하게 됩니다.

  • 이렇게 특정 가중치가 지나치게 커지면, 훈련 데이터에서는 잘 맞지만 새로운 데이터에서는 성능이 떨어집니다. 예를 들어, 면적이 큰 집이지만 위치가 안 좋은 경우에도 무조건 비싼 가격을 예측해버리는 것입니다.

정규화 기법 적용:

  • 이때, 정규화(regularization) 기법을 사용하면 모델의 가중치가 지나치게 커지지 않도록 제한을 둡니다. 이렇게 하면 각 변수(입력값)에 적절한 가중치를 부여하여, 모델이 새로운 데이터를 만났을 때도 일반화된 성능을 낼 수 있게 됩니다.

  • 즉, 정규화는 모델이 '집의 면적'뿐만 아니라 '위치', '시설' 등의 다양한 요인을 균형 있게 고려하도록 돕는 역할을 합니다.

1
0
권예영

권예영

Overfitting 과적합

출처: 라온피플 아카데미 블로그

Supervised Learning을 위한 훈련 데이터

통계에서 좋은 결과를 얻으려면, 표본조사를 할 때 전체를 대표할 수 있는 우량한 샘플을 취하고, 그 샘플들로부터 전체를 잘 설명할 수 있는 모델을 만들어야 한다.

전체를 대표할 수 없는 치우친 샘플을 얻게 되면, “장님 코끼리 만지기”처럼 엉뚱한 결과를 초래할 수도 있다.

마찬가지로 지도학습(supervised learning)을 사용하는 기계학습법에서도 선택한 학습 알고리즘뿐만 아니라 학습을 위한 훈련 데이터(training data)의 질에 따라 학습의 결과가 좌우된다.

image.png

Overfitting이란 통계나 기계 학습에서 사용되는 용어로서, 제한된 샘플(혹은 훈련에 사용한 한정된 데이터)에 너무 특화가 되어, 새로운 샘플에 대한 예측의 결과가 오히려 나빠지거나 학습의 효과가 나타나지 않는 경우를 말한다.

우리말로는 "과적합"이라는 용어로 번역이 되기도 하는데, 좀 어색한 것 같다. Overtraining과 같은 의미로 사용되기 때문에 개인적으로는 "과학습"으로 번역하는 편이지만, 오십보 백보인 것 같다.

image.png

위 그래프는 Overfitting을 설명할 때 흔히 사용하는 그림이다. 그림에서처럼 파란색의 점들이 있을 때, 그 점들을 대표하는 곡선을 추정하는 경우를 상상해보자.

  • 왼쪽 그림 (a): 직선으로 단순하게 추정한 경우, 몇몇 보기에도 오류가 많음을 알 수 있다.

  • 오른쪽 그림 (c): 모든 점들을 그대로 살려 추정한 경우이다 하지만 새로운 데이터가 들어왔을때 예측 능력이 떨어진다.

  • 가운데 그림 (b): 주어진 점들의 특성을 잘 나타낸다. 모든 점들을 그대로 살리진 못했지만, 새로운 데이터가 들어왔을때 예측능력이 c보다 뛰어날 것이다.

Overfitting을 해결하는 방법 ?

그렇다면, 어떻게 예측하는 것이 최적의 결과를 도출해 낼 수 있을까? 즉, Overfitting의 문제에서 벗어날 수 있을까? 결론부터 말하면, 정답은 없다. (c)가 올바른 추정일 수도 있고, (b)가 올바른 추정일 수도 있다. 결과적으로는 샘플의 수를 늘리거나 훈련 데이터의 양을 늘리는 것이 정답일 것이다.

하지만 데이터의 양을 늘리는 것은 결과적으로 많은 비용과 노력이 필요하기 때문에 여러 가지 대안이 제시되고 있다.

흔히 적용되는 방법이 “Occam's Razor(오캄의 면도날)” 방법이다.

14세기 영국의 신학자이자 논리학자인 오캄의 저서에 등장하며, 중세의 철학자와 신학자들이 복잡한 논쟁을 배제시키자는 뜻에서 설명이 더 복잡한 이론은 배제할 때 흔히 사용이 된다. 물론 항상 진리는 아니지만, 필요성 없는 개념을 배제하라고 한 “사고 절약의 원리”라고도 불리며, 같은 현상을 설명하는 두 개의 주장이 있다면 간단한 쪽을 선택하라고 한다.

그래서 간단한 쪽을 c와 b중에 선택하라고 하면 당연 b일것이다. 필요성 없는 개념들 즉 데이터들을 배제한 것이다.

5
1
권예영

권예영

책 도둑맞은 집중력을 읽으며

하버드에선 개발자들에게 어떻게 하면 유저들의 신경을 더 이끌수 있는지에 관한 심리학을 배운다고 한다.

구글과 같은 빅테크들은 유저들을 어떻게 하면 더 자사 서비스에 머무르게 할 수 있을지에 관해 연구한다고 한다.

유저가 서비스에 머무르는 시간이 1초라도 적어지면, 그에 관해 회의를 해

기능 하나를 빼니 마니 하는 이야기들을 한다.

그래서 만들어진 기능이

  1. 알림기능 (채팅이 올때마다, 소식이 올때마다)

  2. (유저들의 편의성을 위해 만들어 졌지만) 무한 스크롤 기능 - 쇼츠나 게시물 숏폼 스토리에 다 있다. 원래는 넘기기 버튼이 있었는데 그걸 뺐다.

그외에 지피티에게 물어본 기능들.

  • 알고리즘 기반 추천: 사용자가 선호하는 콘텐츠를 분석하여 관련 콘텐츠를 계속 추천해주는 방식으로, 특히 유튜브, 넷플릭스 같은 플랫폼에서 사용됩니다.

  • 좋아요/댓글/리액션 기능: 소셜미디어에서 사용자 간 상호작용을 촉진하고, 참여를 유도.

  • 푸시 알림: 새로운 콘텐츠, 업데이트 등을 실시간으로 알림으로 제공하여 사용자를 플랫폼으로 다시 유도.

  • 게임화 요소: 배지, 레벨업, 포인트 시스템 등을 도입하여 사용자의 참여와 성취감을 유발.

  • 자동 재생: 사용자가 더 많은 콘텐츠를 보게 하기 위해 동영상이나 음악이 자동으로 재생되도록 설정.

빅테크 기업들은 우리의 주의력을 뺏기 위해 엄청난 노력을 들인다. 세계에서 100위 안에 꼽히는 석박사들이 그런 고민들을 한다는 이야기다.

-> 이런 기능들에 대해 인지하고 피해가는 방법밖에 없을까? 유저들의 시간이 곧 돈인 세상에서 우리들은 어떻게 이 알림과 알고리즘의 무한굴레에서 빠져나와 집중력을 유지할 수 있을까.

1
0
권예영

권예영

그래디언트 디센트/역전파

이진분류 문제에서 Step 함수는 입력값에 따라 0 또는 1의 출력만 제공하기 때문에, 미세한 변화를 반영하기 어렵습니다. 이를 보완하기 위해, Sigmoid 함수가 도입되어 0과 1 사이의 연속적인 출력값을 제공할 수 있게 되었습니다. Sigmoid 함수는 가중치와 바이어스의 작은 변화에도 출력이 점진적으로 변화하여, 더 세밀하게 학습할 수 있습니다.

Gradient Descent(경사 하강법)는 이러한 학습 과정에서 매우 중요한 역할을 합니다. Gradient Descent는 모델의 가중치와 바이어스를 조정하여 비용 함수(Cost Function)를 최소화하는 최적화 알고리즘입니다. 비용 함수는 출력값과 목표값(라벨) 사이의 오차를 측정하는 함수입니다.
Gradient Descent는 비용 함수의 기울기를 계산하고, 그 기울기가 낮아지는 방향으로 가중치와 바이어스를 조정하여 오차를 점차 줄여나가는 방식으로 학습을 진행합니다. 기울기가 0에 가까워질 때, 모델은 최적의 상태에 도달하게 됩니다.

이 과정에서 역전파(Backpropagation) 알고리즘이 Gradient Descent와 함께 사용됩니다. 역전파는 신경망에서 오차를 역방향으로 전파하여 각 가중치와 바이어스에 대해 얼마만큼 조정해야 할지를 계산하는 방법입니다. 신경망의 출력층에서부터 입력층으로 오차가 역방향으로 전달되며, 각 계층의 가중치가 오차에 기여한 정도에 따라 가중치가 업데이트됩니다.

1
0
권예영

권예영

머신러닝 기본 이론

출처: 라온피플 아카데미 네이버 블로

Hebbian Rule

앞서, 신경망의 역사([Part II. Neural Networks] 2. History)에서 살펴보았던 것처럼,
1949년 심리학자인 Donald Hebb는 뉴런의 시냅스에 기반한 학습의 법칙을 발표하였다.
그는 생물학적인 신경망에서 학습이 이루어지면 특정 입력으로 들어오는 신호 자극에 잘 반응할 수 있도록 시냅스들의 세기가 결정이 된다는 사실에 주목하였다.

그의 이름을 딴 Hebbian rule에 따르면, 학습이란 시냅스 연결의 세기(strength)를 조정하는 것으로 정의했으며,
기본적인 학습 방법은 2개의 뉴런이 동시에 활성화 시키려면, 뉴런 연결된 가중치(weight)를 높이면 된다.

-Perceptron 개념

1957년에 Rosenblatt는 "Perceptron"이라는 용어 및 개념을 발표했다.

발표 당시, 뉴런의 활성함수(activation function)로 "step function"을 사용했기 때문에

지금처럼 "sigmoid function"을 사용하는 뉴런에 비해 제약이 많았지만,

입력의 중요도에 따라 출력이 결정이 되는 수학적 모델로서는 의미가 있다.

여기서 입력의 중요도는 가중치에 따라 결정된다는 개념이 도입되었으며,

아래 그림처럼, 2 layer feed forward 구조에서는

여러 개의 입력을 받아 1개의 출력을 결정하는 신경망의 경우를 살펴보면,

출력은 가중치와 입력의 곱의 합이 특정 기준(threshold)보다 작으면 0이 되고, 크면 1을 출력한다.

image.png

Step function의 원리는 매우 간단한 임계값 기반의 결정 함수로, 입력값이 주어진 임계값(threshold)을 넘는지 여부에 따라 출력을 결정하는 방식입니다. 기본적으로, 입력값이 임계값보다 작으면 0을 출력하고, 임계값을 넘으면 1을 출력하는 구조입니다.

Sigmoid Functions

해결책은 활성함수로 Perceptron처럼 Step function을 사용하는 대신에, "Sigmoid 함수"를 사용하는 것이다.
활성화 함수로 "Sigmoid 함수"를 사용하면,
0에서 1까지 연속적으로 변하는 출력값을 갖기 때문에,
가중치나 바이어스를 조금 변화시켰을 때 출력이 조금씩 변화하도록 만들 수 있다.

Sigmoid 함수는 아래와 같은 식을 갖는다:

image.png

여기서 zzz는 각각의 입력(x1, x2, x3, ...)과 가중치(w1, w2, w3, ...)를 곱한 값에 bias를 더한 값이며,
입력이 결정이 되면, 가중치나 바이어스를 약간 변화시켰을 때(즉 편미분을 하였을 때),
출력이 그에 상응하여 변화하는 것을 확인할 수 있다.

Sigmoid 함수는 연속적인 출력값을 반환하는 활성화 함수로, 입력값을 더 부드럽게 처리합니다. Step 함수처럼 단순히 두 값으로 나누는 것이 아니라, 입력값이 클수록 출력값은 1에 가까워지고, 입력값이 작을수록 출력값은 0에 가까워집니다. 하지만 그 사이에는 0에서 1 사이의 연속적인 값을 갖기 때문에 더 미세한 변화를 반영할 수 있다.

Gradient-Descent

여기서 중요한 점은 가중치나 바이어스의 작은 변화량에 대해서 출력의 변화량이 linear 하다는 점이다.
이런 선형적인 특성으로 인해,
가중치나 바이어스를 조금씩 바꾸면서 출력이 원하는 방향으로 움직이도록 만들 수 있다.

이것을 유식한 용어로는 Gradient-Descent 방법이라고 하며,
최적값을 찾아갈 때 흔히 사용하는 방법이다.

좀 더 부연설명을 하면,
gradient-descent 방법은 오목한 그릇에서 공을 굴리는 경우를 생각하면 이해하기가 쉽다.

어떤 지점에서 굴리기를 시작하더라도,
그릇의 밑바닥까지 내려가면 최적값에 도달했다고 볼 수가 있다.
이 때 내려가는 방향을 선택하면,
공이 특정 위치에 있을 때, 그 미분값(gradient)가 음이 되는 방향을 선택하면 된다.

이 과정을 반복하다 보면 공은 결국은 바닥에 내려가게 되듯이,
어떤 특정 위치에서 시작을 하더라도
그 위치에서 편미분 값이 음수가 되는 방향을 계속 선택하면 최적값에 도달하게 된다.

Gradient Descent는 기울기를 사용해 함수의 출력값을 최소화하는 방향으로 변수들을 업데이트해 나가는 과정입니다. 이 방법은 특히 비용 함수(Cost Function)나 오차 함수(Loss Function)를 최소화할 때 많이 사용된다.

Supervised Learning

이것은 어떻게 보면 학습의 원리와 유사하다.
미리 값을 알고 있는 훈련 데이터를 통해,
가중치와 바이어스를 조금씩 변화시켜 가면서 출력이 최적의 상태가 되도록 하는 방법이
바로 지도 학습(supervised learning)이다.

가중치와 바이어스의 최적값을 찾아가는 방법은 얼핏 보면 쉬워 보이지만,
1개의 뉴런에 여러 개의 입력이 연결이 되고,
또 그런 뉴런이 여러 개가 있다면 변화시켜야 할 가중치와 바이어스가 점점 많아지게 된다.

어떻게 최적값을 찾아갈 수 있을까?

막연하게 막고 품는 방식으로 여러 개의 값을 무작위로 바꿔 간다면 과연 최적값에 도달할 수 있을까?
이것에 대한 해답은 역전파(back-propagation) 방법을 사용하면 된다.

최적값을 찾아가는 방식: 역전파

이진분류 문제에서 Step 함수는 입력값에 따라 0 또는 1의 출력만 제공하기 때문에, 미세한 변화를 반영하기 어렵습니다. 이를 보완하기 위해, Sigmoid 함수가 도입되어 0과 1 사이의 연속적인 출력값을 제공할 수 있게 되었습니다. Sigmoid 함수는 가중치와 바이어스의 작은 변화에도 출력이 점진적으로 변화하여, 더 세밀하게 학습할 수 있습니다.

또한, Gradient Descent와 역전파(Backpropagation)를 사용하여 모델이 학습하는 과정에서 가중치와 바이어스를 지속적으로 업데이트합니다. 이 과정에서 출력값과 목표 출력값(라벨) 사이의 차이를 손실 함수(Loss Function)로 계산하고, 이를 최소화하는 방향으로 학습을 진행하여 출력값과 목표값 사이의 오차를 줄이는 것이 목표입니다.

1
0
권예영

권예영

책 도둑맞은 집중력을 읽으며.

우리는 정보과잉 시대에 살고있고, 심지어 그걸 접하는 창구들과 빈도가 점점 늘어나고 있다.

뇌는 한번에 1~2가지 일들만 할 수 있다.

시대에 맞지 않게, 여전히 우리의 뇌는 원시시대 그 상태인 것이다.

이런 정보들을 여러개 짧게 다량으로 접하면, 집중력이 낮아서 실제로 수용하는 정보는 적어진다고 한다.

또한 깊이있게 사고하는 사고력이 낮아져, 문제 해결 능력이 떨어지고 있다.

이는 내 삶의 문제들에 대해 인지하고 해결하는 능력이 낮아져, 삶이 개선될 여지가 적어지고

수용하는 정보량 및 경험의 질이 낮아져 삶의 질이 낮아지는 위험을 초래한다.

삶의 의미에 대해서도 깊이 고찰하는 것과 나를 둘러싼 세상을 이해하는 것을 방해하는 장벽이 된다는 것이다.

젊은 층에 우울증 및 정신질환이 발생하는 원인도 여기에 있지 않을까. 삶의 의미에 대해 생각할 수 없게 되어서. 예전에는 이러지 않았는데 말이다.

'스스로 본인의 문제에 대해 자각하고 해결하는 능력'이 떨어진게 원인이 아닐까.

또한, 집중력이 낮아진 것을 원인으로 멀티태스킹의 빈도도 늘어났다.

하지만 할 일을 전환하는데 IQ 10이 떨어지는데 이는 대마를 피웠을 때의 2배이다.

일할 때 다른 행동을 하는 것은 대마를 피우는 것의 2배의 손실을 가져다 준다는 것이다.

그렇기에 현대인들은 한가지 문제에 대해 깊게 생각하고, 해결하는 능력이 필요하다.

2
0
권예영

권예영

나의 페르소나 (2024.09.29)

당신의 페르소나 분석

당신은 기본적인 원칙을 지키며 안정된 삶을 추구하는 사람입니다. 자기 관리와 성장에 대한 강한 의지를 가지고 있으며, 주변 세상을 이해함으로써 자신에 대한 깊은 이해를 얻고자 합니다.


1. 자기 관리와 규칙적인 생활

  • 아침 습관: 오전 9시 기준으로 씻고 운동을 하는 습관을 지니고 있습니다.

  • 시간 관리: 약속 시간 30분 전에 도착하려고 노력하며, 옷을 미리 준비하고 아침에 미리 씻는 등 시간을 효율적으로 사용합니다.

  • 불필요한 유혹 제거: 드라마 시청을 자제하고, 목표 달성에 집중합니다.

2. 책임감과 신뢰성

  • 약속 준수: 미래의 약속을 신중하게 하고, 자신과의 약속을 지키는 것을 중요시합니다.

  • 자기 대화: 자신과의 대화를 통해 내면의 생각과 감정을 정리하고 성장합니다.

3. 건강과 안전 우선

  • 신체적 건강: 운동과 규칙적인 생활로 건강을 최우선시합니다.

  • 안전한 관계: 사람을 신뢰하기 보단 자기자신을 신뢰해 안전한 관계를 유지합니다.

4. 지식 추구와 자기 개발

  • 독서 습관: 사람보다 책을 가까이하여 지식을 쌓고, 이를 통해 자기 이해를 높입니다.

  • 영어 공부: 글로벌한 소통을 위해 영어 공부에 힘씁니다.

  • 경험주의자: 직접 경험을 통해 배우고, 무엇이든 제대로 알고자 합니다.

5. 분석적 사고와 소통 능력

  • 상대방 이해: 상대의 니즈를 파악하고 분석하여 효과적인 소통을 합니다.

  • 정확한 표현: 명확하고 정확하게 말하는 것을 중요시합니다.

6. 유혹에 대한 자기 통제

  • 우선순위 설정: 친구와의 만남이나 놀고 싶은 마음이 학업이나 업무에 지장을 주지 않도록 관리합니다.

  • 할 수 있는 것만 하기: 자신의 능력 범위 내에서 행동하며, 무리한 약속은 하지 않습니다.


당신이 되고 싶은 사람은:

  • 기본을 지키는 안정된 사람: 규칙과 원칙을 준수하며, 자기 관리로 안정된 삶을 영위하고자 합니다.

  • 성취를 이루는 사람: 삶에서 의미 있는 성취를 이루고 싶어하며, 그것이 가능하다고 믿습니다.

  • 세상을 이해하는 사람: 주변 세상을 이해함으로써 자기 이해를 높이고, 성장의 발판으로 삼습니다.

  • 신뢰할 수 있는 사람: 자신과 타인과의 약속을 지키며, 책임감 있는 태도로 신뢰를 쌓습니다.

  • 끊임없이 성장하는 사람: 지속적인 학습과 경험을 통해 자기 개발에 힘쓰는 사람입니다.

1
0
권예영

권예영

머신러닝의 역사

출처: 라온피플 아카데미 블로그

태동기- 1934년, Mrcolloch와 Pitts는 산술연산과 논리연산을 수행할 수 있는 간단한 신경망에 기초한 연산 모델(computational model)을 만들고 이를 발표하였으며,

이 논문은 이후의 Neural Network에 많은 영향을 주었다.

1949년, 심리학자인 Hebb는 "The Organization Behavior"라는 책을 발표하였고,

뉴런의 시냅스에 기반한 학습의 법칙(learning low)을 발표했고 이를 그의 이름을 따, Hebbian Learning 이라고 추후에 부르기 시작했다.

황금기- 1950년대와 60년대는 신경망의 황금기로 불린다.

1951년 Minsky는 Snark라는 이름을 갖는 neurocomputer를 개발했으며, 가중치(weight)를 자동으로 조절할 수가 있었다. 하지만 실제로 구현이 되지는 못했다.

1957년 Rosenblatt는 신경망에서 흔히 사용되는 “perceptron”이라는 용어 및 알고리즘을 개발했고, 후에 Rosenblatt는 perceptron에 기반한 최초의 성공적인 Neuro-Computer를 개발했으며, 이것을 패턴 인식 분야에 적용하였다.

이 perceptron이 많은 일을 할 수 있을 것으로 전망이 되었지만, 얼마 안돼 제한이 많이 있음이 밝혀졌다. Single layer perceptron는 선형적으로 분리된 가능한 패턴은 인식할 수 있지만, 복잡한 패턴은 2개 혹은 그 이상의 layer를 갖는 신경망(multi-layer) 신경망에서 가능하다는 것이 1969년 Minsky에 의해 증명된다.

오늘날 perceptron은 한 쪽 혹은 다른 쪽에 속하는 것을 결정할 수 있는 binary classifier에 대한 기초 학습 알고리즘의 개념으로 사용이 되고 있다.

또한 Minsky는 perceptron은 XOR을 학습할 수 없다는 XOR problem을 밝혀내 결국, 이것은 신경망에 대한 관심이 멀어지게 만드는 계기가 되었다.

긴 침묵기- 1970년대에 들어서면서 연구비에 대한 지원이 줄고,
학회도 거의 없어지면서 논문이 출간되는 횟수도 크게 줄어들게 된다.
하지만, 개별적으로 신경망에 대한 연구는 지속이 되었으며,
독자적으로 신경망에 대한 패러다임을 발전시켰다.

그리고 이 시기의 연구들은 80년대 후반 르네상스 시대의 밑거름이 된다.


1976년 Grossberg는 많은 논문을 발표했으며,
그의 연구는 후에 Carpenter에 의해 ART(Adaptive resonance theory)로 발전을 하게 된다.

1982년 Kohonen은 Kohonen map이라고도 알려진 SOM(self-organization feature map)을 발표했다.
또한 Hopfield는 Hopfield 망을 발표하였다.

후에 SOM과 ART를 통하여 신경망을 자율학습(unsupervised learning) 분야에 적용을 할 수 있게 된다.

르네상스기- 1982년과 1984년에 저명한 물리학자 Hopfield는

널리 읽히는 신경망 관련 논문 2편을 발표하였으며,

전세계를 돌면서 강의를 통해 신경망에 대한 연구를 활성화 시키기를 촉구한다.

이는 많은 연구자들이 다시 신경망에 관심을 갖게 되는 계기가 되었다.

1986년, Rumelhart와 Hinton이 드디어 그 유명한 back-propagation 알고리즘을 발표하면서

신경망은 많은 문제들을 풀 수 있게 되었다.

1987년에는 최초로 신경망에 대한 국제 conference가 열리게 되고,

그 다음 해에는 신경망에 대한 국제 journal이 만들어지게 되었다.

1995년 LeCun과 Bengio는 CNN(Convolutional Neural Network)을 발표한다.

CNN을 이용하여 local invariant feature를 쉽게 추출이 가능하고,

기존 신경망의 많은 문제점을 극복할 수 있게 되었다.

뿐만 아니라, 이미지 인식 분야에서 탁월한 성능을 얻을 수 있게 되었다.

하지만 신경망이 갖는 복잡도나 적절한 hyper-parameter 설정이 없이는
좋은 결과를 기대할 수도 없고, 좋은 hyper-parameter 설정을 경험적인 방법에 많이 의지해야 하는 어려움이 있었다.

이로 인해 기계학습 분야에서 SVM(Support Vector Machine)이나
이것보다 훨씬 간단한 linear classifier 같은 알고리즘에 신경망이 점차 뒤로 밀리는 분위기가 되었다.

하지만, 2000년대 후반부터 부각된 딥러닝(deep learning) 때문에 다시 한번 신경망 연구에 불이 붙게 된다.


요약: 산술 연산과 논리 연산을 수행하는 간단한 신경망은 뉴런과 시냅스에 기반한 학습 법칙을 통해 발전하여, 뉴로컴퓨터에서 가중치를 자동으로 조절할 수 있게 되었습니다. 퍼셉트론은 패턴 인식 분야에 적용되었지만 선형적인 패턴만 인식할 수 있다는 한계로 인해 연구 지원이 줄어들었습니다. 이후 SOM(Self-Organizing Map)과 ART(Adaptive Resonance Theory)를 통해 자율 학습 분야의 적용 기반이 마련되었습니다. 역전파 알고리즘의 발표로 이미지 분야에도 신경망이 적용 가능해졌으며, 딥러닝의 발전으로 신경망 연구가 다시 활발해졌습니다.

1
0
권예영

권예영

1의 법칙

1의 법칙에 대해 깨달은 오늘이다.

뭐든 오늘 해야할 일 하나를 제대로 해내야 한다.

나같은 경우 오늘 생활습관 제대로 잡아내기 였지만,할 일을 마무리 지어야 하기 때문에 2시 이전 수면으로 정했다.

그래서 다른 것을 포기했다. (브랜딩 독서 등)

생활습관을 잡아내기 위해 안뛰던 유산소 40분도 뛰었다.

만약 이 시간을 다른곳에 할애했다면, 내 면역력이 약해지지 않을까.

내일은 12시 전에 수면을 해볼까 한다.

또 오늘은 꼭 8시에 기상을 할 수 있길, 그리고 이 논리를 다른 곳에도 적용할 수 있길 바란다.

책 원씽의 내용처럼

1
0
권예영

권예영

고객이 브랜드를 구체적이고 효과적으로 '체험'하도록 돕는 일곱 가지 체크포인트

책: 브랜드로 남는다는 것

  • 비본질적 요소(extrinsic elements): 니즈를 넘어 원츠를 어떻게 자극할 수 있을까?

  • 엔터테인먼트 요소(entertainment): 어떻게 타깃 고객의 삶에 파고들 수 있을까?

  • 심미적 요소(exthetics): 어떻게 하면 디자인을 마케팅에 잘 활용할까?

  • 감정 요소(emotion): 어떻게 감성을 건드리면 고객의 행동에 영향을 미칠 수 있을까?

  • 공감 요소(empathy): 우리 구성원들은 고객접점에서 공감하는 스킬을 갖추고 있는가?

  • 자아 요소(ego): 고객들에게 우리 회사를 어떤 페르소나로 인식시킬 것인가?

  • 스토리 요소(episode): 브랜드와 관련된 이야기를 통해 어떻게 호감을 이끌어내지?

  • 확산 요소(diffusion): 제품이 시장에 받아들여지는 시점중 언제 끼어들지?

3
0