이 글은 shorturl.at/dgkpL 와 여러 reference의 내용을 번역, 정리한 글이며 가장 기초적인 개념을 담은 글입니다. 오역, 틀린 내용은 댓글로 부탁드립니다. 내용은 의역하여 정리 하였습니다.
- Stochastic 는 random = probabilistic와 비슷하고, deterministic과는 반대이고 non-deterministic과는 종종 비슷한 개념으로 쓰임 (하지만 엄밀히는 다름) : 엄밀한 비교는 아래서 확인해주세요.
통계에서, variable은 random variable이라고 불리고, 1 또는 그 이상의 결과나 이벤트를 가져온다. 측정할 수 있는 것을 의미한다. 이 의미에서, stochastic variables는 random variables과 같은 뜻이다. 주로, 랜덤은 시퀀스안에서 관찰들 사이의 연관성 부족을 의미한다. random variables이나 a random sequence는 확률 분포를 사용해 압축할 수 있다(summarized).
[2] 확률 분포는 확률 변수가 특정한 값을 가질 확률을 나타내는 함수를 의미한다. 예를 들어, 주사위를 던졌을 때 나오는 눈에 대한 확률변수가 있을 때, 그 변수의 확률분포는 이산균등분포가 된다.
마치 현재 사건과 다음 사건의 (완벽하진 않지만) 어느정도의 부분적 관련성을 설명할때, 그런 변수의 확률적 특성을 표현할때는 랜덤보다는 stochastic이라는 말을 쓴다.
[3] 랜덤은 variable에 no bias나 예측이 아예 불가할때 쓰이고, stochastic는 anaysis나 프로세스에 더 많이 쓰임.
stochastic variables or process는 probabilistic하다. 무슨말이냐면, 확률(probability)을 이용해 stochastic variables or process를 간단히 표현할 수 있다. 시퀀스안의 어떤 사건들이나 다음 사건의 분포는 확률분포로 표현 가능하다. probabilistic는 dependence를 강조한다.
[4] 종종 Stochastic processes 보다는 Probability가 큰 개념으로 쓰이곤한다. Probability는 랜덤한 현상이나 복잡한 시스템을 설명하려는 모델, analyze, 문제 해결적 수학적 프레임워크다. 이산수학을 설명하는 중요한 방법이다. Stochastic processes는 시간이나 공간을 포함한 랜덤한 양을 probabilistic models으로 설명한 과정들이다.
변수나 프로세스가 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 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는 파라미터들을 최적화한다. 뉴럴네트워크에서 한번 순회(iteration)할때, 모델 파라미터를 매번 다른 순서로 업데이트 한다. 한번 순회하기 전에 무작위로 섞인 트레이닝 데이터 셋을 사용하는 방식을 Stochastic Gradient Descent라고 한다.
의사 결정 트리 구조의 앙상블이다. 확률적 측면은 트리 생성, 트리분할 지점을 구성하는 데에서 사용된 트레이닝 데이터 셋에서 행렬의 줄들에서(rows) 랜덤한 하위 집합(subset)을 말한다.
간단히 찾아보니, 전체 트레이닝 데이터셋에서 랜덤하게 하위 샘플을 뽑아서 매 회 돌린다고 한다.
머신러닝에서 무작위성을 사용하니까 당연히 머신러닝도 확률적이다. 이는 회귀나 분류를 사용하는 nonlinear method나 complex method에서 볼 수 있다. 동일한 알고리즘이 동일한 데이터에서 실행될 때마다 다른 모델을 피팅하는 효과가있는 학습 데이터에서 모델을 구성하는 과정에서 임의성을 사용한다. 이런 비선형 모델의 통계적 측면은 학습 알고리즘이 현재 상황에 따라 결정될거라는 초보자의 믿음을 딜레마에 빠트리게 한다. Stochastic Algorithm Behaviour는 단일 훈련 실행에서 모델의 성능이 아닌 모델의 평균 또는 예상 성능을 설명하는 summary statistics를 사용하여 모델의 성능을 압축해야 한다(summarized).
[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/