Skip to content

Repository files navigation

에러측정 함수 설명

https://user-images.githubusercontent.com/102293576/174158253-ea9be0f2-6cd8-497c-809f-2d58ccfbe9bd.png

$wx+b$ 와 입력된 데이터값$ =y$의 차이를 제곱한 값을 오차로 계산하였다.

$$Err_{tot} = \displaystyle\sum_{i=0}^{100}{(wx+b)-y)^2}$$

유전자 생성함수

https://user-images.githubusercontent.com/102293576/174158255-b6a31fb4-c824-41f2-88ba-18d89e5d3723.png

    1. 유전체 생성
      (w:f,b:i)인 유전체 4개 생성한다.
      이때$ $w$의 범위는 $0$부터 입력 데이터의 최대 기울기까지, $b$의 범위는 0부터 입력 데이터의 최대값으로 정하여 설정하였다.
      이럴 경우 의미없는 염기를 선택하지 않을 수 있다.

https://user-images.githubusercontent.com/102293576/174158257-d8956b4f-2575-4f3b-bbc3-5ccb5993d46e.png

    1. 유전체 적합도측정 유전체가 가지는 $Err$값의 역수를 이용한 $F=\frac{1}{Err}$을 적합도로 정한다. 즉 에러값이 작을 수록 적합도가 커지게 된다.
    1. 유전체 교차선택 가중치는 $\frac{F_{i}}{\sum{F}}$ 로 정하여 가중치에 따라 유전체 2개를 선택한다.
      가중치에 따라 선택된 유전체 $[w_{1},b_{1}], [w_{2},b_{2}] \Rightarrow [w_{1},b_{2}],[w_{2},b_{1}]$로 교차시킨다.
      이때 교차는 $100$% 일어나는 것으로 한다.
    1. 염기의 변이
      특정한 확률에 따라 염기를 변이 시킨다. 이때 변이의 $Range$는 최초 생성될때의 $w,b$와 같게 설정하였다.
  • 반복 2~4 과정을 우리가 원하는 적합도에 도달하는 유전자가 등장 할 때까지 반복시킨다.

입력되는 데이터

$$ err(-11:f) x + 0 + err(-1010:i}, size=100, {x┃0\leq x \leq 100, x \in Z$$

위 함수를 통하여 만들어진 데이터를 이용하였다. 데이터를 산점도로 확인하면 아래와 같다.

https://user-images.githubusercontent.com/102293576/174289998-066dbd41-1d5f-494e-afe3-cd7e6147ddfe.png

회귀유사도 비교

데이터셋과 $2x$$Err$를 이용하여, 목표 오차값 $=$ 기존오차값$/ 0.95$ 으로 테스트하였다 아래는 선택된 유전자를 보여주는 것이다. https://user-images.githubusercontent.com/102293576/174158266-c1a10bba-cd27-41a5-a4f3-8bccc7496caf.png

돌연변이에 따른 세대수 비교

변이 확률이 $0.005, 0.01, 0.05, 0.1$ 일 때를 비교해보았다. 다음은 목표 오차값까지 도달하는데 걸리는 평균 세대와 그때의 변이확률이다.

---AveGen--- ---p_{mu}---
2000 0.005
1061 0.01
268
84 0.1

변이 확률이 높을수록 목표에 점차 빨리 도달하는 것을 알 수 있다.

전체데이터는 첨부된 ResultDataAboutMu 에서 확인 가능하다.

평균 세대수 비교

돌연변이 확률을 $0.01$로 고정, 목표값에 도달하기위한 기대값을 알기위하여 $500$번 시행해보았다. 추정 평균 기대값은 약 $700$회 정도이다.

최적화 과정 확인

요구오차 $=$ 기존오차$/0.99$ 일 때 유전체별 오류값이 어떻게 세대가 진행될 수록 어떻게 변화하는지 확인해보자
https://user-images.githubusercontent.com/102293576/174293365-d6bd9c3f-937a-4f59-8796-3810b05bb8c4.png
다음과 같은 산점도가 그려지게 되는 것을 확인했다.
네 유전체가 비슷한 오차값을 유지하며 진행되면서 변이가 발생할 때마다 값이 이탈되는 것이 보인다.
그러다 좋은 값으로 변이가 이루어 졌을 경우 이후 세대부터는 어느정도 감소된 오류감으로 전체적으로 수렴하는 과정이 이루어진다. 이 유전체는 $w, b$ 두개의 염기만을 가지기에 유전체들간의 오류값 수렴이 빠르고, 이후 값으 변화는 변이에 의존하는 경향이 크게 보여진다.
전체 데이터는 ResultDataAboutErr 에서 확인가능하다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages