생성

아래 명령어로 id를 생성한다. (useradd는 low level utility로 home directory 자동 생성이 안될 수 있다.근데 CentOS에서는 둘이 동일하다.)

adduser 유저id

passwd 유저id

변경

특정 그룹에 넣기(adduser로 그냥 생성하면 id와 같은 이름의 group이 생성되면서 거기 들어갔던 것 같다)

adduser -G 그룹이름 유저id


sudo권한 부여

/etc/sudoers 열어서 root 밑에 유저id 추가


삭제

userdel -r 유저id (-r옵션을 주어야 홈디렉토리까지 삭제됨에 주의, deluser라는 것도 있지만 redhat계열은 없다고 한다. 따라서 CentOS에도 없음)

groupdel 그룹이름(user생성시 같은 이름의 그룹이름이 생성되었을 수 있기 때문에 해주는 것)


조회

특정 유저id가 속한 그룹들 조회(여러 그룹에 들어가 있을 수 있다.)

groups 유저id



반응형

'Programming > Linux' 카테고리의 다른 글

리눅스 비밀번호 틀린 횟수 초과 대응방법  (0) 2019.10.07
crontab  (0) 2019.09.27
CentOS 7 방화벽  (0) 2017.12.04
리눅스 port 확인  (0) 2017.12.04
sudo 관련  (0) 2017.11.07

논문: https://arxiv.org/pdf/0710.3742.pdf


첫번째 핵심이 되는 수식은 다음과 같다.

결합확률 $$P(x_{t+1} \cap x_{1:t}) = P(x_{t+1}|x_{1:t})P(x_{1:t}) = \sum_{r_t}P(x_{t+1}|r_t, x_t^{(r)})P(r_t|x_{1:t})$$

해석해보면.. 1부터 t까지의 샘플을 보고 t+1의 샘플을 예측하는 것(확률 분포를 구하는것)

대략 아래 그림에서 층별로 잘라내서 분리해서 더한걸로 어느정도 이해가 된다.

중간식에서 오른쪽 식으로 변하는 수학적 디테일이 좀 불명확하긴 함

근데 change point에 대한 확률이 아니라 $x_{t+1}$자체를 예측하는거임? > $x_{1:t}$를 보고 $r_t$를 예측하는 식이 더 중요하고 곧 나옴 ㅋ


run length: time since the last changepoint


$r_t$: length of the current run at time t. 

아래를 보면 $r_t$개념은 명확해진다. $r_2=1, r_3=2, r_5=0, r_6=1$이런식인것


$x_t^{(r)}$: set of observations associated with the run $r_t$  .. 흠 정의가 좀 모호하네

이 논문에서는 $x_t^{(r_t)}$ denotes the most recent data corresponding to the run $r_t$라고 돼있네.

즉 $r_{13}$에 대한 $x_t^{(r_13)} = \{x_{11}, x_{12}, x_{13}\}$이라는것 같다.



조건부 확률공식 $P(A|B)=\frac{P(A, B)}{P(B)}$ 에 따라 가장 핵심이 되는 수식은 다음과 같다.

$$P(r_t|x_{1:t}) = \frac{P(r_t,x_{1:t})}{P(x_{1:t})}$$

그다음에 이걸 $P(r_t, x_{1:t})$에 대해서 정리하면서 r-1과 r에 대한 recursive form으로 바꿔보면 다음과 같이 된다.

(수학적 디테일은 살짝 스킵하자)


반응형

'AI, ML > ML' 카테고리의 다른 글

윈도우 환경에서 ML환경 구축  (0) 2022.03.09
케라스(Keras)  (0) 2020.04.13
부스팅(boosting)  (0) 2019.05.28
Word2Vec  (0) 2019.04.24
weka  (0) 2019.02.28

여기 참조


이항분포처럼 확률이 정해진 독립사건을 여러번 시행했을때를 다룬다. (예를 들면 동전이나 주사위)

베르누이는 이항분포의 특수한 사례에 속하며 이항분포에서 반복실험 횟수 n에 1을 대입하면 베르누이분포가 된다.


동전을 던졌을때 앞면이 나올 확률을 $\theta$라고 하고, 앞면이 나오는 사건을 y=1, 뒷면이 나오는 사건을 y=0으로 표기하면 


동전의 앞면이 나올 확률은 $p(y=1|\theta)=\theta$가 되고 뒷면이 나올 확률은 $p(y=0|\theta)=1-\theta$가 됨을 알 수 있다.


앞면뒷면 사건을 1,0으로 정의한 덕분에 동시에 합쳐서 다음과 같이 표현할 수 있다.


$$p(y|\theta) = \theta^y(1-\theta)^{(1-y)}$$


위식이 바로 베르누이 분포를 나타낸다.


성공과 실패두가지 밖에 없으므로 이산확률분포가 되며 그 모양은 여기를 참조



동전 던지기 N번 실행해서 z번 앞면이 나오는 경우는 다음처럼 표현이 가능하다.


$$p(z,N|\theta) = \theta^z(1-\theta)^{(N-z)}$$

반응형

여기 참조


직관

베타분포는 베르누이분포의 모수(모델 또는 파라미터) $\theta$를 추정하는데 쓰인다.

동전던지기를 예로 들면 베르누이 분포는 다음과 같이 되는데..


$$p(y|\theta) = \theta^y(1-\theta)^{(1-y)}$$

우리가 궁금한것은 모델이 주어졌을때의 샘플의 확률이 아니라, 거꾸로 샘플이 주어졌을때 어떤 모델($\theta$)이 적합한가이기 때문에, (ML적인 관점에선 당연하고 학습과정이 곧 이것)

거꾸로 $p(\theta|y)$에 관심이 있고 구해야하는 값이다.

그런데 베이즈 정리에 따르면 

$P(\theta|y) = {{P(y|\theta)P(\theta)}\over{P(y)}}$가 되고, 다음과 같은 의미로 해석한다.

$$사후확률(posterior) = {{가능도(likelihood) \times 사전확률(prior)}\over{증거(evidence)}}$$


즉 우리가 학습을 한다는 것은 사후확률을 구한다고도 얘기할 수 있는데, 이때 베타함수 형태로 가정하면 식을 세우기 편하다고 직관적으로 보면 딱 좋을것 같다.

(즉 무조건 사후확률이 베타분포가 된다는게 아니라 베타분포로 가정한다는걸 이해하는게 중요)


베타함수

베타함수는 두변수(x, y)에 대한 다변수 함수이며 다음과 같이 정의된다.


x>0, y>0일때

$$B(x, y) = \int_0^1 t^{x-1}(1-t)^{y-1}dt$$


보통 팩토리얼이 감마함수로 일반화 되듯이,

조합(Combination)의 일반화로 이야기 된다.


조합은 이항계수라고도 하고 n과 k가 자연수일때 다음과 같이 정의된다.


$$_nC_k = {n \choose k} = {{n!}\over{k!(n-k)!}}$$


보면 자연수일때도 팩토리얼이 들어가므로, 실수, 복소수로 확장하게 된다면 감마함수가 들어가는게 자연스러울 거란걸 알 수 있다.

베타함수는 감마함수를 쓰면 다음과 같이 된다.


$$B(x,y) = {{\Gamma(x)\Gamma(y)}\over{\Gamma(x+y)}}$$

근데 위 식을 보면은 감마함수의 경우는 팩토리얼과 아주 유사하게 되어 있는데 이항계수식과 베타함수를 보면 분모분자도 바뀌어 있는것 같고 뭔가 정확히 같아보이진 않는다.

실제로 m과n이 자연수일때 둘간의 관계를 나타내 보면 다음과 같이 서로 역수 형태임을 알 수 있다.


$$B(m,n) = {1\over{m\cdot _{m+n-1}C_{n-1}}}$$

$${n \choose k} = {1\over{(n+1)B(n-k+1,k+1)}}$$


베타분포

역시나 감마함수가 감마분포가 될 때와 마찬가지로 적분값을 1.0으로 만들기위해 역수로 나눠주는 과정이 들어가 있다.

$\alpha, \beta$에 따른 분포의 모양은 위와 같다.


반응형

여기, 여기 참조함



직관

가장 간단하게는 베이즈 정리를 사용하여 사후확률을 구하는 과정이라고 할 수 있다.


ML적인 관점에서는 보통 $p(모델|샘플)$을 구하는 과정이 된다.

(주어진 샘플을 가장 잘 설명하는 모델파라미터를 찾는 과정...)


문자를 써서 표시하면 $P(\theta|X) = {{P(X|\theta)P(\theta)}\over{P(X)}}$가 되고, 다음과 같은 의미로 해석한다.

$$사후확률(posterior) = {{가능도(likelihood) \times 사전확률(prior)}\over{증거(evidence)}}$$

위에서 X는 샘플 리스트를 의미

사전확률 = 경험적으로 알고 있는 것

사후확률 = 관심있는 것

예제1

아래 예제는 여기서 발췌함

쿠키 가득한 그릇이 2 개 있다고하자. 그릇 # 1에는 10 개의 초콜릿 칩 쿠키와 30 개의 일반 쿠키가 그릇 # 2에는 각각 20 개씩있다 (이것을 전제 지식으로한다). 어느 하나의 그릇을 무작위로 선택하고 또한 무작위로 쿠키를 꺼낸다. 결과 쿠키는 일반이었다. 이것이 그릇 # 1에서 꺼내 진이라는 확률은 어느 정도인가?

절반 이상이라는 것은 직관적으로 알 수있다 (그릇 # 1 분이 일반 쿠키가 많기 때문). 정확한 답변을 베이지안 추정 내자. 그릇 # 1을 선택하는 이벤트를 1 그릇 # 2를 선택하는 이벤트를 2 로한다.

먼저 그릇을 무작위로 선택 했으니 그 둘 중 하나를 취할 확률은 P ( 1 ) = P ( 2 ) = 0.5.

"일반 쿠키가 나왔다"는 관찰 결과를 "데이터 D "로한다. 그릇 # 1에서 D 확률은 P ( D | 1 ) = 30/40 = 0.75 그릇 # 2는 P ( D | 2 ) = 20/40 = 0.5로 나타났다. 베이지안 식은

이되기 때문 쿠키를보기 전에 그릇 # 1을 선택 확률 (사전 확률)는 P ( 1 ) = 0.5. 쿠키를 본 후에는이 확률은 P ( 1 | D ) = 0.6로 개정된다.

위 예제는 이해하기 쉬운데, 의외로 베타분포는 필요가 없음을 알 수 있다. 그럼 베타 분포는 언제 필요하느냐.. 위처럼 단일 확률에 대한 경우가 아니라 이항분포와 같이 통계적인 부분을 취급할때 필요하게 된다. 다음 예제를 보자.

예제2

관찰 결과가 성공 m 번 실패 n 시간이되었다고한다. 구체적으로는 동전 던지기 에도 누군가에 찬성 · 반대의 의견을 듣는 것도 좋다. 모수 a (시도 횟수, 성공 확률)에 대한 사전 확률 p ( a )에서 표현한다.

주어진 a 의 값에 대한 전체 m + n 회 시행의 내 성공이 m 시간이 될 확률은

m 및 n 은 고정되고, a 는 불명하기 때문에 이것은 a 의 가능도된다.

베이 즈 정리 (연속 분포의 형태)에서

사전 분포 p ( a )로 특정 물건을 선택하면,이 적분을 수행 할 수 사후 확률은 간단한 형태가된다.

특히 p ( a )가 모수 0 과 0 의 베타 분포 라면, 사후 분포도 베타 분포에서 모수는 m + 0 과 n + 0 이된다.

위의 예 베타 분포처럼 사후 분포가 동일한 유형의 분포가되도록 사전 분포를 공액 사전 분포 한다.


상세



베이즈 정리와 추론이 있는데 정리는 여기 참조.


베이즈 추론을 알려면 베르누이 분포베타분포를 먼저 알아야 함





반응형

'수학' 카테고리의 다른 글

수학관련 유용한 사이트  (0) 2024.01.27
모듈러연산  (0) 2020.04.04
Bootstrap Sampling(부트스트랩 샘플링)  (0) 2019.02.08
공분산(Covariance)과 상관계수(Correlation Coefficient)  (0) 2019.01.18
확률변수(random variable)  (0) 2019.01.18

여기, 여기 참조함


MLE의 경우를 생각해보면 우리는 샘플들을 보고 그 샘플들을 가장 잘 설명하는 모델을 찾아나가게 된다.

MLE가 아니라 전반적인 ML이란 것 자체가 샘플(학습인풋)들을 보고 그 샘플을 가장 잘 설명하는 모델(딥러닝 웨이트 등)을 찾는 과정이라는 점에서 동일함을 알 수 있다.


근데 이 샘플을 주어진 샘플을 사용하는게 아니라 generation해야 한다고 생각해보면 어떻게 될까?

예를 들어 $\pi$를 구하는 몬테카를로의 경우 사각영역안에서 uniform random으로 좌표를 찍어서 샘플링을 하게된다.

이런 uniform random sampling의 경우는 간단한데..

uniform하지 않고 특정 확률분포를 따르는 경우는 복잡해지기 시작한다.

그리고 샘플이 보통 1차원이 아니라 n차원이 되는데(딥러닝 인풋이 n개면 n차원으로 볼 수 있다)

이런경우에 각각의 차원이 별도의 확률분포를 가지는 경우 샘플링이 상당히 힘들어지게 된다.


깁스 샘플링은 이러한 경우에 한번에 하나의 차원씩 샘플링하면서 만들어 나가는 방법론인걸로 일단 파악중이다.

(자세한건 전혀 모름)




반응형

직관

단일변수에 대한 z검정 또는 t검정은 귀무가설과 대립가설을 세우고, 표준정규분포 또는 t분포와 p-value를 통해서 유의성을 검증하는데,


아래와 같이 두 변수의 연관성에 대한 검증을 할때는, 정규분포 또는 t분포가 아닌 카이제곱분포를 따르는것이 알려져 있으며,

정규분포 또는 t분포가 아닌 카이제곱분포를 사용한다는 것만 다르고 다음처럼 p-value를 통한 유의성을 보고 대립가설을 채택할지 말지를 결정하는 나머지 과정은 유사하다.

위 예시에 대한 자세한 내용은 여기를 참조하자.
보면 알겠지만 위의 2x2 테이블에 대해서 하나의 카이제곱값이 계산되며, 이 값이 카이제곱분포에 대한 확률밀도함수의 x위치가 됨을 알 수 있다.


상세


카이제곱 검정을 이해하기 위해서는 카이분포를 먼저 이해해야 한다.


카이분포를 이해하기 위해서는 정규분포감마분포를 이해해야 한다.


감마분포는 아래 감마함수와 연관되어 있고, 팩토리얼을 실수 및 복소수까지 일반화한 바로 그 함수이다.


감마분포는 확률밀도함수 형태여야 하므로 감마함수에서 전체 적분값이 1.0이 되도록 맞춰주면 나온다.

(감마함수 -> 감마분포 부분 설명이 좀 부실한듯 하다.. 나중에 보강하자)


근데, 정규분포에서 평균m과 표준편차 $\sigma$가 파라미터로 추가되듯, 여기서도 감마분포의 특성을 고려해 알파,베타 파라미터를 추가하면 다음과 같다.


위처럼 감마분포는 보통 x>0 인 구간에 대해서만 사용하는 것 같다. (정규분포는 모든 x구간 사용)


파이선에서 알파,베타를 바꿔가면서 감마분포를 그려보면 다음과 같다 (scipy.stat의 gamma.pdf 사용)


$\beta$가 커질수록 그래프는 더 퍼지는 형태를 띠게 되고, $\alpha$가 커질수록 bell shape에 가까운 모양이 됨을 알 수 있다.


카이제곱분포는 감마분포에서 , β= 2로 고정한 특별한 경우이다 .

자유도가 r인 카이제곱분포는 감마분포 $\Gamma({r\over 2},2)$에 해당되며, 확률밀도함수는 다음과 같다.



이 분포를 자유도가 r인 카이제곱분포(chi-square distribution)라하고, 기호로는 $X \sim \chi^2(r)$로 나타낸다. 여기서 r > 0 이다.
즉, 카이제곱 분포와 감마분포 간에는 다음의 관계가 성립한다.
$$\chi^2(r) = \Gamma({r\over 2},2)$$

파이선 코드로 카이제곱분포와 감마분포함수를 각각 사용해서 같은지 그려보면 다음과 같이 실제로도 같음을 알 수 있다.(아래에서는 r대신 v로 표현)



TODO

* 감마분포의 자연스러운 사용 예제

* 카이제곱검정에서 셀을통한 계산을 하면 카이제곱분포의 x값이 나오는 정확한 이유

반응형

동의어: 가우시안 분포


여기좋다.


본 글은 따라가다 보면 정규분포가 자연스럽게 이해되도록 의식의 흐름대로 작성되었습니다. 


관련함수

먼저 다음 함수를 보자


$f(x) = e^{-x^2}$


벨커브 모양을 그린다는걸 알 수 있다.

다음처럼 상수 a,b,c를 써서 살짝 만져주면 가우스함수가 된다.
$f(x) = ae^{-{{(x-b)^2}\over{c^2}}}$

매개변수 a는 곡선의 꼭대기 높이가 되며, b는 꼭대기의 중심의 위치가 된다. c는 종의 너비를 결정한다.


여기서 평균과 표준편차와 관련되도록 다음처럼 a,b,c값을 살짝 살짝 또 만져주면서 대입하면 드디어 정규분포에 관련된 함수가 된다.

$f(x)=\frac 1 {\sqrt{2\pi} \sigma} e^{-\frac {(x-m)^2 }{2\sigma^2}}$

좀더 정확히는 정규분포를 따르는 확률변수의 확률밀도함수이다. (대충 넘어가자)

확률밀도 함수이므로 적분값이 1.0이 되도록 살짝 살짝 만진것이다.


정규분포를 따르는 예시에 대해서는 여기를 참조하자(동전, 주사위 등)


표준정규분포 = 평균이 0이고 표준편차가 1인 정규분포(위 식에서 평균에 0, 표준편차에 1을 대입하면 된다.)

$f(x)=\frac 1 {\sqrt{2\pi} } e^{-\frac {x^2 }{2}}$


반응형

여기여기, 여기 참조함


bagging(= Bootstrap Aggregating)

bagging은 decision tree쪽에서 활용되는 기술이며 bootstrapping을 통해 강한 오버피팅모델 여러개를 만들어 correlation을 줄인다음 앙상블 하는 기술


bootstrap sampling(중복을 허용하여 전체가 아닌 부분을 샘플링하는 것) 을 통해 여러개 모델을 병행적으로 동시에 학습시키고 평균을 취하는 것(voting)


아래처럼 acc가 높은 상황에서 모델별로 오동작 하는 영역이 다르면 최상의 결과를 가져옴

하지만 아래처럼 acc가 낮거나 해서 오동작 하는 영역이 겹칠경우 voting에 의한 효율이 떨어지게 됨

Boosting

여러 모델을 병행적으로 동시에 학습하는게 아니라 하나를 학습하고(h1), 거기서 오동작하는 영역을 위주로 다른 하나의 모델을 학습하고(h2), h1과 h2가 결과가 다른 곳을 중심으로 새로운 모델을 학습하고(h3) 이런식으로 순차적으로 진행하는 방식


error rate가 50%에 가까운(49%등) weak classifier를 사용하는 것 가능(!!)



반응형

'AI, ML > ML' 카테고리의 다른 글

케라스(Keras)  (0) 2020.04.13
Bayesian Online Changepoint Detection 논문리딩  (0) 2019.08.21
Word2Vec  (0) 2019.04.24
weka  (0) 2019.02.28
1D CNN  (0) 2019.02.26

Failed to process callback: 'long_short_plans'

Traceback (most recent call last):
File "/home/dncodev/.virtualenvs/molly/src/preface/preface/trade/live/strategy.py", line 61, in run
callback(*args, **kwargs)
File "/home/dncodev/.virtualenvs/molly/src/preface/preface/trade/onthefly/strategy_6f587721ba2ad286f38a77bf39bef1561188ece2.py", line 332, in on_tick_trade
self._order_start()
File "/home/dncodev/.virtualenvs/molly/src/preface/preface/trade/onthefly/strategy_6f587721ba2ad286f38a77bf39bef1561188ece2.py", line 454, in _order_start
self._place_execution_orders()
File "/home/dncodev/.virtualenvs/molly/src/preface/preface/trade/onthefly/strategy_6f587721ba2ad286f38a77bf39bef1561188ece2.py", line 604, in _place_execution_orders
for isin in user_account['long_short_plans']:
KeyError: 'long_short_plans'


반응형

+ Recent posts