ch2 용어정리-1 stochastic이란

Eunice Kang·2021년 5월 14일
0

이 글은 shorturl.at/dgkpL 와 여러 reference의 내용을 번역, 정리한 글이며 가장 기초적인 개념을 담은 글입니다. 오역, 틀린 내용은 댓글로 부탁드립니다. 내용은 의역하여 정리 하였습니다.

What Does Stochastic Mean in Machine Learning?

1. stochastic은 약간은 랜덤한 결과, 약간의 불확실성을 포함한 다양한 프로세스를 의미한다.

- Stochastic 는 random = probabilistic와 비슷하고, deterministic과는 반대이고 non-deterministic과는 종종 비슷한 개념으로 쓰임 (하지만 엄밀히는 다름) : 엄밀한 비교는 아래서 확인해주세요.

  • 예를들면, 게임은 stochastic하다고 볼 수 있다. 카드 셔플, 주사위 굴리기 등에 랜덤 요소가 들어가기 때문이다.
  • Brownian motion, Markov Processes, Monte Carlo Sampling등에서 이런 랜덤함을 stochastic한 수학적 계산으로 흔히 쓰인다.

Stochastic vs. Random

통계에서, variable은 random variable이라고 불리고, 1 또는 그 이상의 결과나 이벤트를 가져온다. 측정할 수 있는 것을 의미한다. 이 의미에서, stochastic variables는 random variables과 같은 뜻이다. 주로, 랜덤은 시퀀스안에서 관찰들 사이의 연관성 부족을 의미한다. random variables이나 a random sequence는 확률 분포를 사용해 압축할 수 있다(summarized).
[2]
확률 분포는 확률 변수가 특정한 값을 가질 확률을 나타내는 함수를 의미한다. 예를 들어, 주사위를 던졌을 때 나오는 눈에 대한 확률변수가 있을 때, 그 변수의 확률분포는 이산균등분포가 된다.
마치 현재 사건과 다음 사건의 (완벽하진 않지만) 어느정도의 부분적 관련성을 설명할때, 그런 변수의 확률적 특성을 표현할때는 랜덤보다는 stochastic이라는 말을 쓴다.
[3] 랜덤은 variable에 no bias나 예측이 아예 불가할때 쓰이고, stochastic는 anaysis나 프로세스에 더 많이 쓰임.

Stochastic vs. Probabilistic

stochastic variables or process는 probabilistic하다. 무슨말이냐면, 확률(probability)을 이용해 stochastic variables or process를 간단히 표현할 수 있다. 시퀀스안의 어떤 사건들이나 다음 사건의 분포는 확률분포로 표현 가능하다. probabilistic는 dependence를 강조한다.

[4] 종종 Stochastic processes 보다는 Probability가 큰 개념으로 쓰이곤한다. Probability는 랜덤한 현상이나 복잡한 시스템을 설명하려는 모델, analyze, 문제 해결적 수학적 프레임워크다. 이산수학을 설명하는 중요한 방법이다. Stochastic processes는 시간이나 공간을 포함한 랜덤한 양을 probabilistic models으로 설명한 과정들이다.

Stochastic vs. deterministic (vs. Non-deterministic)

변수나 프로세스가 deterministic하다는건 같은 시퀀스 안의 다음 사건이 지금 현재 사건으로부터 결정된다는 것이다. 그러니까 Stochastic과는 반대의 개념이다. deterministic algorithm은 같은 인풋을 넣으면 항상 같은 결과를 내는 알고리즘이다.
이에 반해 Non-deterministic algorithm은 인풋이 같아도 아웃풋은 다를 수 있다. stochastic variables or process은 아웃풋의 성질때매 deterministic하지 않다. 근데 이때 우리가 stochastic variables or process는 Non-deterministic이라고 해도 될까? 100% 같은 개념은 아니다. Non-deterministic은 오직 결과의 가능성만을 이야기 하기 때문이다. 한마디로 아웃컴과 분산이 중요한 확률(probability)을 이용한 분석에서는 Non-deterministic보다는 stochastic가 확실한 표현이 될 수 있다. stochastic은 확률이 정량화(quantified)되는데 반해 Non-deterministic는 확률적 개념이 들어있지 않다.

Stochastic in Machine Learning

2. 머신러닝 알고리즘의 stochastic한 성격은 매우 중요한 초석이 되는 컨셉이며 많은 예측모델의 behavior해석을 효과적으로 하려면 꼭 이해해야한다.

  • stochastic domains는 불확실성을 가지고 있다. 머신러닝은 항상 확실하지 않은 양을 다루고 stochastic quantities를 다루는것이 필요하게 된다. 랜덤 오류, 통계적 노이즈의 대상이 되는 타겟, 목적함수에서 불확실성이 생길 수 있다. 모델에 사용된 데이터가 방대한 population에서 기인한 불완전한 샘플이면 불확실성이 생길 수 있다. 모델은 도메인의 모든 측면을 포착할 수 없고 보이지 않는 상황들을 일반화 하고 일부의 충실도(fidelity)를 잃어야 한다.

Stochastic Optimization Algorithms

3. 많은 머신러닝 알고리즘이 stochastic인 이유는 최적화나 학습에 랜덤을 explicitly 사용하기 때문

Stochastic optimization란 최적화된 목적함수가 핸덤함을 가질 수 있게 목적함수에 대한 최적을 찾는것을 의미한다. 많은 경우,
Stochastic Optimization Algorithms은 검색 공간을 탐색(exploring)하는 것과 검색 공간에 대해 이미 학습 한 것을 활용(exploiting)하는 것 사이의 균형을 맞추는 정도를 찾는 알고리즘이다. 최근 어떤 영역이 찾아졌는지 기인해 통계적으로 다음 로케이션을 선택하게 된다.

Popular stochastic optimization algorithms:
Simulated Annealing
Genetic Algorithm
Particle Swarm Optimization

무작위성을 사용하는건 머신러닝의 특성이고 오류가 아니다. 이런 무작위성이 결과가 정해진 결과값들만이 아니라 다양한 결과를 내게 해주기 때문이다. 아래에 Stochastic을 아예 이름에 넣은 알고리즘도 우리는 볼 수 있다.

Stochastic Gradient Descent (optimization algorithm).
Stochastic Gradient Boosting (ensemble algorithm).

Stochastic Gradient Descent

Stochastic Gradient Descent는 파라미터들을 최적화한다. 뉴럴네트워크에서 한번 순회(iteration)할때, 모델 파라미터를 매번 다른 순서로 업데이트 한다. 한번 순회하기 전에 무작위로 섞인 트레이닝 데이터 셋을 사용하는 방식을 Stochastic Gradient Descent라고 한다.

Stochastic Gradient Boosting

의사 결정 트리 구조의 앙상블이다. 확률적 측면은 트리 생성, 트리분할 지점을 구성하는 데에서 사용된 트레이닝 데이터 셋에서 행렬의 줄들에서(rows) 랜덤한 하위 집합(subset)을 말한다.
간단히 찾아보니, 전체 트레이닝 데이터셋에서 랜덤하게 하위 샘플을 뽑아서 매 회 돌린다고 한다.

Stochastic Algorithm Behaviour

머신러닝에서 무작위성을 사용하니까 당연히 머신러닝도 확률적이다. 이는 회귀나 분류를 사용하는 nonlinear method나 complex method에서 볼 수 있다. 동일한 알고리즘이 동일한 데이터에서 실행될 때마다 다른 모델을 피팅하는 효과가있는 학습 데이터에서 모델을 구성하는 과정에서 임의성을 사용한다. 이런 비선형 모델의 통계적 측면은 학습 알고리즘이 현재 상황에 따라 결정될거라는 초보자의 믿음을 딜레마에 빠트리게 한다. Stochastic Algorithm Behaviour는 단일 훈련 실행에서 모델의 성능이 아닌 모델의 평균 또는 예상 성능을 설명하는 summary statistics를 사용하여 모델의 성능을 압축해야 한다(summarized).

Reference:

[1] https://machinelearningmastery.com/stochastic-in-machine-learning/#:~:text=The%20behavior%20and%20performance%20of,randomness%20and%20has%20some%20uncertainty.&text=Stochastic%20is%20a%20synonym%20for,is%20different%20from%20non%2Ddeterministic.
[2] https://ko.wikipedia.org/wiki/%ED%99%95%EB%A5%A0_%EB%B6%84%ED%8F%AC#:~:text=%ED%99%95%EB%A5%A0%20%EB%B6%84%ED%8F%AC(%ED%95%9C%EA%B5%AD%20%ED%95%9C%EC%9E%90%3A%20%E7%A2%BA%E7%8E%87,%EC%9D%B4%EC%82%B0%EA%B7%A0%EB%93%B1%EB%B6%84%ED%8F%AC%EA%B0%80%20%EB%90%9C%EB%8B%A4.
[3] https://www.researchgate.net/post/What_is_the_exact_difference_between_stochastic_and_random
[4] https://engineering.jhu.edu/ams/probability-statistics-and-machine-learning/

0개의 댓글