Blair  - Soul Eater 자연 선택 모델을 이용한 코로나 바이러스 분석 및 경향성 파악

• program/대학교 AI 코딩 부트캠프

자연 선택 모델을 이용한 코로나 바이러스 분석 및 경향성 파악

oujin 2022. 3. 5. 21:53
728x90

프로젝트 소개

 

자연선택 모델을 관찰하여 알아낸 특성을 이용하여 코로나 바이러스의 경향을 분석해 보았습니다.

 

프로젝트 목차

 

자연계 모델의 특성

1.개체수 추론
2.자연계 추론
3.돌연변이 출현
 
자연계 모델을 설정하고 무한의 시간이 지났을 경우, 어떠한 비율로 생태계가 진행되었는지 관찰합니다.
이를  유니티 게임엔진을 이용하여 시뮬레이션을 하였고 돌연변이의 출현까지 고려하여
여러가지의 자연계 모델을 관찰하였습니다.
 

자연계 모델의 활용

1.코로나 데이터 분석
2.코로나 경향성 파악

 

시뮬레이션과 선형대수를 이용하여 유의미한 결과가 있는 모델임을 증명하여 이를 이용하여

코로나의 경향성을 예측하는데 적용시켰습니다. 

 
자연계 모델의 특성

1. 개체수 추론

 자연 선택이라는 것은 자연계에서 환경에 적합한 종이 더 잘 살아남는다는 원리입니다.

즉, 특수한 환경에서 개체군(동식물 등)들 중 생존에 적합한 형질을 지닌 개체들이 

생존에 부적합한 형질을 지닌 개체군에 비해 생존과 번식에서 더 우위에 있음을 뜻합니다.

이렇기 때문에 시간이 지남에 따라 어느 한 개체군이 도태되거나 우세해 질 수 있습니다.

 

프로젝트에서 자연모델을 설정 할때에 자연계는 객체들간의 상관관계를 의미하고, 모든객체들은 시간의 지남에 따라 자연에 계속해서 노출된다는 것을 전제로 하였습니다. 자연계는 편의상 w 오메가로 지정하였습니다.

 

자연계가 주어지면 시간이 흐른뒤 각 개체들의 비율이 어떻게 되는지에 대해 알아보기위하 작은 자연계를 설정하였습니다.

 

 

사자와 사자가 만나면 싸우다가 둘다 죽는다.

사자와 토끼가 만나면 사자가 토끼를 먹고 사자의 개체수는 증가한다.(2마리 증가)

(=토끼가 사자를 만나면 토끼는 잡아먹힌다)

토끼와 토끼가 만나면 번식을 하고 자손을 낳는다(2마리가 증가)

 

이러한 모델을 만들고 이 자연계를 무한한 시간에 노출시켰습니다.

한번의 w를 겪으면 개체수가 변화합니다. 그 새로운 개체수가 또다시 w를 겪을 것이고 이를 무한히 반복합니다.

 

A는 정방행렬이므로 고유벡터의 성질을 가집니다.

A * 열벡터 x = 고유값 * 열벡터를 만족한다는 것은 방향은 같지만 크기만 변했다는 것을 말합니다.

따라서 오메가를 무한히 곱할때에 방향이 같은 열벡터가 존재하고 크기만 다르다면 그때의 고유값과 열벡터를 알 수있습니다.

이러한 과정을 통해 저희는 자연계에 무한히 노출되면 열벡터의 열에 수렴하게 되는 것을 알 수 있습니다.

numpy의 linalg.eig()를 이용하여 계산하였습니다.

식을 통해 얻은 고유값을 이용하여 계산해 보면 시간이 흐른뒤 자연계에 의한 개체들간의 비율은 1:1이 됩니다.

 

식을 통해 1:1의 비율로 수렴한다는 것을 계산 하였지만 프로젝트 발표에서 더 효과적으로 보여주기 위해

유니티 게임엔진을 이용해 시뮬레이션을 만들어 보았습니다.

 

 

약 16초 정도의 영상이며 시간의 흐름에 따른 개체수들의 숫자 비율을 보시면 마지막에 1:1로 수렴하는 것을 볼 수 있습니다.

 

이러한 간단한 자연계를 설정하고 각 개체들의 시간에 따른 상관관계를 살펴보았습니다.

 

하지만 너무도 간단한 자연계였으며 실제 자연계는 이만큼 간단하지 않음을 알고 있습니다.

따라서 더욱 복잡한 자연계를 설정하여 개체수에 상관없이 나중에 어떠한 비율로 수렴한다면 앞서 관찰한 결과가

유의미한 값을 나타내고 이를 이용할 수 있겠다라는 생각을 하였습니다.

 

아래와 같은 항목을 적용하여 더 복잡한 규칙을 적용하였습니다.

간단한 자연계였지만 실제는 더 많은 동물들의 상호작용이 일어난다.
•만든 모델이 더 복잡한 규칙에도 최종적으로 같은 값에 수렴한다면 올바른 모델이라고 할 수 있다.
 

3종류의 자연계를 무한히 노출시켰고 그로인해 세가지 자연계모두 13:11:10이라는 값으로 수렴한다는것을 알아 낼수 있었습니다.

0.65 : 0.56 : 0.50의 열백터 성분이 나왔고 시간의 지남에 따라 일정한 비율로 균형을 유지함을 알 수 있었습니다.

array([0.65337639, 0.56236396, 0.50666608])

13 : 11 : 10

 

이러한 과정을 통해 아래와 같은 결론을 얻을 수 있었습니다.

 

 자연계에 무한히 노출되면  처음 개체수에 상관 없이
결국 개체의 비율은 열백터성분에 수렴하는 비율을 이룰 것이다. 

2. 자연계추론

위의 추론실험은 자연계가 존재하면 시간이 지난후의 개체수의 비율을 알아내는 것이었습니다.

이번에는 반대로 개체수가 주어지면 자연계의 상관관계를 알아낼수 있는가? 에 대한 질문을 갖고 실험해 보았습니다.

이 질문에 대한 답을 알아 내기 위하여 처음 자연계를 설정 했을 때 사용한 사자-토끼 시뮬레이션을 1초에 한번씩 개체수를 리스트에 저장하였습니다.

 

 

그리고 이 리스트에 저장된 사자와 토끼의 개체수를 이용하여 w를 예측하는 모델을 만들었습니다.

 

3모델은 3초마다 자연계가 곱해지는 모델입니다.

예를 들어 11초일떄 사자가 115마리, 토끼가 127마리, 14토일때 사자가 135마리, 토끼가 149마리 라면

wt(14)는 wt(11)보다 3초 후이며 이것은 w를 한번 더 겪은 자연계라고 볼 수 있습니다.

 

선형회귀를 이용하여 w의 오차가 줄어드는 방향으로 모델을 실행하였습니다.

 

30000번 회귀하는 방식으로 구현하였으며 결과를 그래프로 관찰하였습니다.

 

 

위와 같이 자연계를 학습하였고 이 자연계의 고유값과 고유벡터를 구한 결과 학습을 통해 얻은 자연계를 고유값을 0.955를 선택했을 때 열백터의 성분이 0.71169655: 0.70248702 = 1:1에 수렴함을 알 수 있었습니다.

 

이러한 결과를 도출해냄을 통해 자연계의 미래의 결과값을 알아낼 수 있을것이라 생각하였습니다.

 

 

 

 

하지만 이번보다 더 복잡한 규칙을 적용했다 하더라도 개체군이 2개인 매우 간단한 자연계였기 때문에 초기 자연계(ans_w)를 랜덤하게 부여하여 설정하고, 이러한 자연계로 이루어진 자연계가 선형회귀를 통해 학습할 수 ㅣㅇㅆ도록 하였습니다.

 

만약 학습되어 나온 w가가 초기 자연계의 값에 수렴한다면 만들어진 모델이 유의미한 값을 도출해내는 모델이라고 할 수 있습니다.

 

 

 

3000번 반복한 결과 학습한 오메가는 초기 자연계에 비슷하게 수렴하는것을 알 수 있었습니다.

 

하지만 이 모델 또한 개체군이 3개인 자연계이므로 더 큰 데이터를 넣어 모델을 학습시켜 보았습니다.

더 큰데이터, 더많은 개체군(10개)로 모델을 학습시켰고 이를 10000번 반복한 결과 입니다.

 

 

이를 실행 한 결과 ans_w와 w의 차이가 1/100 이하로 거의 같아지는 것을 관찰 할 수 있었습니다.

 

이러한 다양한 모델을 통한 결과를 통해 결론을 내릴 수 있었습니다.

 

시간에 따른 개체수의 정보가 존재한다면 선형회귀를 통해 자연계를 예측 할 수 있다.
개체수를 알고 있다면 초기 자연계를 예측할 수 있으며 이를 이용해 미래의 예측도 가능하다.


3. 돌연변이의 출현

더 많은 데이터를 가지고 모델을 구성하였어도 현실과는 다른 부분이 많습니다.

그중 첫번째는 현실에서는 돌연변이가 나타난다는 점입니다.

따라서 5%의 확률로 돌연변이가 나타난다고 설정하고(새로운개체) 이러한 경우에 초기자연계를 예측할 수 있는지 알아보는 실험을 하였습니다.

 

지금가지 저희는

자연계추론 관찰에서 시뮬레이션을 통해 각 개체의 시간에 따른 개체수를 알고 있다면

그 개체수의 정보를 이용하여 선형회귀를 통해 자연계를 예측할 수 있다는 것을 알았습니다.

그리고 자연계추론 관찰을 통해 그렇게 얻은 자연계를 이용해 무한히 노출 시키면 어떠한 비율로 수렴하고

그 수렴한 정보를 이용해 돌연변이의 경향을 예측 할 수 있다는 점을 알 수 있었습니다.

 

이를 바탕으로 통연변이가 출현하는 실험을 하기위해 환경을 설정하였고 이는 다음과 같습니다.

 

1. 먹이는 가만히 있고, 개체가 돌아 다닌다.

2. 생존 시간동안 먹이를 먹지 못하면 죽는다.

3. 먹이를 두개 이상 먹으면 자손을 낳는다.

4. 생존 시간동안 먹이를 먹으면 살아남는다.

5. 5%확률로 돌연변이가 탄생한다.



크기 속도 생존시간
1번 모델 2*2*2 16 32
2번 모델 2*2*2 32 16
3번 모델 2*2*2 8 64
4번 모델 2*2*2 16 32
5번 모델 1*1*1 16 4
6번 모델 1*1*1 16 256

위의 돌연변이 6종이 5퍼센트 확률로 나오도록 설정한후 유니티 게임엔진으로 시뮬레이션해보았습니다.

실제생태계의 돌연변이 출현빈도보다 높게 설정한것은 짧은시간 진행되는 시뮬레이션이기 때문에 빠르게 결과를 알아보기 위함입니다.

 

위에서 6분간 시뮬레이션을 통해 얻은 개체수들을 6종씩 각각 리스트에 저장하고 만든 선형회귀 모델을 통해 자연계를 예측하여 결과를 알아보았습니다.

 

w = array([[ 0.964,  0.755,  0.036,  0.697, -0.18 ,  0.339],

       [-0.001,  0.817,  0.013,  0.867,  0.038, -0.109],

       [ 0.024,  0.658,  0.921,  0.004, -0.133,  0.366],

       [-0.004,  0.113,  0.02 ,  0.046, -0.289,  0.662],

       [-0.01 ,  0.191,  0.021,  0.088,  0.846,  0.653],

       [-0.003,  0.673, -0.048,  0.038,  0.304,  0.413]])

 

 

학습한 자연계를 이용해 고유값, 고유벡터를 구했습니다.

 

 

학습한 자연계를 통해 돌연변이들의 비율이 미래에 0 : 0 : 1 : 0 : 64 : 25가 될 것이라고 예측할 수 있었습니다.

 

예측한 것을 유니티 게임엔진을 통해 30분간 더 진행시켜 결과를 확인해 보았습니다.

 

선형회귀 모델로 예측한 결과와 30분 후의 시뮬레이션 결과가 유사한 것을 확인하였습니다.

시뮬레이션 결과 5번과 6번 모델이 시간이 흐름에 따라 결과적으로 가장 높은 비율을 차지하였습니다.

저희는 5번과 6번 모델의 특징을 분석하여 우세종에 대한 특징을 파악 할 수 있었습니다.

 

5번의 특징: 수명이 길고, 크기가 작다.

6번의 특징: 5번보다 느리지만 수명은 더 길다.

 

자연계 모델의 활용

1.코로나 데이터 분석

이를 바탕으로 각 개체를 코로나 바이러스로 치환하여보았습니다.

 

양성인 사람을 개체로 음성인 사람을 먹이로 하였습니다.

 

다음과 같은 규칙을 정하였습니다.

바이러스가 돌아다니는 것과 양성인 사람이 돌아다니는 것을 같다고 보고 양성인 사람이 음성인 사람과 접촉하면 개체를 유지하거나 복사합니다.

바이러스는 생존시간동안 음성인 사람과 접촉하지 못할시 죽습니다.

5% 확률로 새로운 바이러스의 변이가 등장합니다.

 

그리고 실험을 통해 바이러스의 특성을 정리하였습니다.

바이러스의 속도가 빠르면 더빠르게 먹이와 접촉하므로 감염률도 높습니다.

바이러스의 생존시간이 짧다면 치사율도 낮습니다.

바이러스의 크기가 작으면 표면적이 작으므로 확산율도 작습니다.

 

 

출처: https://kdca.go.kr/contents.es?mid=a20107020000

 

질병관리청에서 제공하는 코로나 19 변이바이러스 정보를 통해 다음과 같은 결론을 낼수있었습니다.

 

선형회귀 모델로 예측한 결과 =5번: 6번 = 64 : 25

오미크론 : 델타 = 65 : 25

 

이러한 실험을 바탕으로 코로나 변이의 경향성을 파악할 수 있었고

치사율은 낮을수록 = 생존시간이 길수록

확산율도 낮을수록 = 개체의 크기가 작을수록

감염율이 높을수록 = 속도가 빠를 수록

자연계에서 우세한 경향이 있다고 정의 내릴수 있었습니다.

 

실제 우세종 변화또한 오미크론 : 델타 = 73 : 26임을 확인하였습니다.

 

 

코로나 확진자 추세는 현재 확진자의 수가 가파르게 증가하고 있고, 이것을 토대로 코로나 바이러스의

감염율이 증가하지만 치명율이 낮아지고 있다고 예측 할 수 있습니다.

 

 

 

이러한 자연 선택 모델은 코로나 바이러스 분석 및 경향성 파악하는것 이외에도 여러곳에 쓰일수 있다고 생각합니다

 

1. 어업 양식장에서 어종의 시간에 따른 개체수를 알 수 있다면 어업 양식장의 운영지침을 정할 수 있다.

2. 국립공원의 동식물 분포를 예측할 수 있다.

3. 식물원의 화원관리를 위해 유지시켜야 할 식물의 비율을 예측할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'• program > 대학교 AI 코딩 부트캠프' 카테고리의 다른 글

AI 코딩 부트캠프 후기  (0) 2022.03.05
부트캠프 8일차 [2조 맛집 folium 지도시각화]  (0) 2022.02.09
부트캠프 7일차  (0) 2022.02.08
부트캠프 6일차  (0) 2022.02.08
일정 / 공지사항  (0) 2022.02.03