책 쓰는 엔지니어
공익근무중에 논문을 몇 편이나 쓸 수 있을까? 본문
이런 생각을 해 봤다.
식물은 양분을 먹어야 살 수 있다. 케일용 양액을 결구상추에게 주면 잎이 노래지다가 죽는것을 보니 식물마다 필요로 하는 영양분의 종류와 비율이 다 다를 것이다. 그렇다면 그 값은 어떻게 추론할 수 있는가?
올 봄에는 이걸 고민하고 공부하는데 시간을 많이 썼다. 식물은 영양분 흡수를 수소 이온 H+의 농도 차이에 의존한다. 식물은 영양을 흡수하기 위해 쉴새없이 수소 이온을 몸 밖으로 뿜어낸다. 이렇게 밖으로 밀려나간 수소 이온은 양이온을 식물 내부로 밀어넣는 힘이 되고, 음이온을 끌고 함께 식물 내부로 다시 들어오기도 한다.
그런데 이 기작을 수학적으로 분석할 수 있다면 어떤 식물이건 가장 최적의 양액을 만들 수 있지 않을까? 기존에는 식물을 동결건조하거나 불태운 재를 가루를 내어 영양분의 비율을 분석하고, 이를 토대로 양액을 설계한 뒤 실제로 몇 차례 재배실험을 하면서 양액의 조성을 추론했다고 들었다. 비용도 많이 들고 시간도 많이 든다. 아직도 간혹 보면 새로운 양액 조성을 밝혀내면 그게 논문으로 발표되곤 한다. 원예학자들에게는 죄송하지만 이 연구 프로세스를 모두 인공지능으로 대체하고 싶었다. 그것도 내 복무가 끝나기 전에.
그래서 양액에 대해 공부했다. 양액은 영양분이 녹아 있는 물이다. 그리고 양액은 화학 복잡계다. 복잡계는 쉽게 생각하면 복잡한 계다. 너무 복잡해서 내부에서 어떤 상호작용이 일어나는지 쉽게 예측하기 힘들다. 그래서 양액에 어떤 영향을 입력했을때, 결과를 쉬이 예측하기 힘들다.
양액 안에서 일어나는 일을 시뮬레이션 하기 위해 비선형 복잡계 네트워크를 만들었다. 쉽게 말하면, 엄청 복잡한 시스템을 잘게 쪼개 하나하나 미분방정식으로 표현하고, 다시 합친 다음, 자기네들끼리 유기적으로 잘 엉켜서 작동하는 복잡한 시뮬레이터를 만들었다는 뜻이다. 필자가 있던 연구실에서는 이런 걸 많이 연구했다.
막상 만들어 보니 이 시뮬레이터는 정말 잘 작동한다. 실험을 해 보니 이론값과의 오차가 0%가 나왔다. 당연히 논문을 썼다. 이게 이전 편에서 언급했던 논문 중 하나다. ICTC 2019라는 학회에 붙었다.
Ban, B., Lee, M., & Ryu, D. (2019). ODE network model for nonlinear and complex agricultural nutrient solution system. arXiv preprint arXiv:1907.10800.
이론적인 뼈대가 만들어졌다. 이제 이걸 사골국물처럼 푹푹 우려먹기만 하면 된다. 이론을 현실과 연결하는 과정에서 어떤 부분이 가장 큰 문제인지 고민해 봤다.
양액은 복잡계다 보니 생각지 못한 현상이 일어난다. 예를 들어서, 칼륨 농도를 재는 ISE(센서의 일종)을 사용해서 칼륨만 들어있는 용액을 측정하면 값이 정확하게 나온다. 하지만 이 용액에 다른 물질을 섞어 주면 센서의 값이 이상하게 변한다. 이런 현상을 방해 이온 효과라고 부른다. 측정할 필요 없는 다른 이온이 센서의 값을 교란하는 현상이다.
그래서 이걸 해결하기 위한 알고리즘을 만들었다. 머신러닝을 적용했지만, 값싼 기계에서도 휘리릭 돌아갈 수 있도록 하는 게 관건이다. 공익은 돈이 없으니까 비싼 장비를 살 수 없다. 돈을 절약하기 위해 가벼운 알고리즘을 적용했고, 덕분에 만 원도 안 하는 아두이노에서 실시간으로 노이즈를 제거할 수 있다. 노이즈 제거 성능은 대충 93~98% 정도 된다. 그래서 완성된게 아래 논문이다. 마찬가지로 ICTC 2019에 붙었다.
Ban, B., Ryu, D., & Lee, M. (2019). Machine learning approach to remove ion interference effect in agricultural nutrient solutions. arXiv preprint arXiv:1907.10794.
여담인데 위 두 기술은 특허법인 이지에서 선행기술조사를 수행해 주었다. 앞의 기술은 선행기술이 없고, 뒤의 기술은 유사한게 있었다. 선행기술이 없을 리 없다며 보고서 써 온 변리사님께서 혼이 났다고. 유사 기술은 미국의 CRC 사의 특허인데 유전알고리즘과 딥러닝을 모두 사용해야 한다. 당연히 산업성 있는 수준의 스마트팜에서 사용하려면 아무리 적게 잡아도 수 천 만원을 GPU 서버에 투자해야 한다. 훗, 나는 비싼 기계 필요 없는데. 내가 이겼다. 근데 CRC 연구원들은 비싼 GPU 서버로 연구 하겠지? 부럽다. 내가 졌다.
또 여담인데 ICTC에 찌른 이유는 두 가지다. 첫번째로 국내에서 하고 싸다. 두 번째로, 필자는 아직 다른 학회에 논문을 내 본 경험이 없다. 석사시절 조별과제 결과물을 저 학회에 냈었는데 비용이 싸서 놀랐었다. 한번 경험이 있는 곳이고 듀도 적당히 타이트하게 남았었기에 여기를 택했다. 그리고 필자가 교신저자로써의 경험이 전혀 없다 보니 노블티가 어느정도인지도 모르겠다. 확실히 되겠다 싶은데 찔러서 한번만에 통과하고 싶었다.
밑준비가 끝났으니 식물의 영양분 흡수에 대한 연구를 시작했다. 오로지 노트와 볼펜만 가지고 연구를 한 결과 아래와 같은 결론에 도달할 수 있었다.
1. 식물의 양이온 이차능동수송 흡수는 상미분방정식으로 표현 가능할 것 같다.
2. 이 상미분방정식의 계수는 식물의 생리학적 성질, 뿌리의 성장에 영향을 받는다. 그리고 이온의 물리적, 전기적 성질에도 영향을 받는다.
3. 이 상미분방정식의 변수는 양액과 식물 뿌리 내부의 영양분 조성의 차이로 인한 값이다.
그러니까 대충 식물은 태생적으로 흡수하는 영양분의 비율이 결정되고, 식물의 생장 정도에 따라 그 속도나 비율이 미묘하게 달라지며, 양액의 조성이 적절치 못하면 영양실조로 굶어 죽는다는 이야기다. 이걸 20종의 가상 식물에서 시뮬레이션을 해서 검증했다. 케일 양액에 상추를 넣으면 시름시름 앓다가 죽는 현상을 이걸로 설명할 수 있다. 생리학적 성질을 표현하는 상수에 임시로 반병현상수라고 이름을 붙였다. 현재 필자만 이걸 이렇게 부르는 상태다. 에헴.
연구 결과를 Horticulture, Environment and Biotechnology라는 학술저널에 제출했다. SCIE급이다. 왜 여기냐고? Publication fee가 엄청 싸다. 이게 저번주의 일이다. HEB에서는 필자의 논문을 보고 아래와 같은 공식 입장을 표명했다.
"줄 간격을 2배로 늘리시오."
역시 저널은 학회 프로시딩보다 어렵다.
다음 연구는 시뮬레이션 결과를 보고 거꾸로 반병현상수를 예측하는 인공지능을 만드는 것이다. 첫 시도는 복잡계 내의 61개 변수가 어떻게 움직이는지를 관측하고 이로부터 미분방정식의 계수를 예측하는 모델을 만드는 것이었다. 생각보다 학습이 너무 안 됐다. 까만창만 하루종일 들여다보고 있다보니 정신이 슬슬 나가는 것 같았다.
데이터의 경향성이 너무 적어보였다. 이걸 학습을 성공시키는 데 상당히 많은 노력이 필요할 것 같았다. 그런데 오늘 오전에 그게 됐다. 너무 갑작스럽게 말이다. 성능이 99.7%가 나오길래 일단 결과를 의심했다. 필자가 만든 인공지능이 이렇게 똑똑할리 없다는 확신이다. 필자는 자식에 대한 믿음이 확실한 아버지다. 그런데 평가척도를 다른 방식으로 바꾸어 보아도 여전히 성능이 99% 이상으로 유지가 되었다. 성공해버린 것이다.
일단 61개의 변수를 관측하며 반병현상수를 예측하는 데 성공했으니 이제는 현실에 맞게 수정할 차례다. 종전의 실험은 화이트박스 모델이다. 복잡계 내부의 변수를 훤히 들여다볼 수 있었기 때문이다. 이번에는 현실의 농가에서 실제로 관측 가능한 값만을 사용하기로 했다. 그러니까 61개 중 오직 6개의 변수만이 관측 가능하고, 나머지 변수는 어떻게 움직이는지 전혀 알 수 없다. 블랙 박스 모델이다.
"한 달 정도 걸리려나?"
근데 그게 또 두 시간 만에 됐다. 이번에도 성능이 99%다. 어이가 없어서 원. 어디에서 문제가 생긴게 틀림없다는 생각으로 검증하는 데 시간을 더 많이 썼다. 성공한게 맞다. 논문만 쓰면 된다. 이렇게 오늘 하루동안 갑작스런 진척이 있었다.
물론 지나고 나니 빠르게 된거지 그사이 굉장히 고생을 많이 했다. 시행착오도 많이 했고. 필자가 찾은 해답은 결국 데이터를 잘 프로세싱 하는 것이었다. 그 과정에서 뇌가 익어버리는줄 알았다.
여하튼 이렇게 올해 3분기까지의 연구를 대충 마무리할 수 있었다. 결산을 해 보면 아래와 같다.
1. 양액 복잡계 네트워크 모델링 (시스템공학)
2. 머신러닝을 이용한 센서 노이즈 실시간 제거방법 (전자공학, 머신러닝)
3. 식물 뿌리의 양이온 이차능동수송의 수학적 모델링 및 시뮬레이션 (바이오피직스, 시스템생물학)
4. 입력값만을 관측하여 식물 뿌리의 양이온 이차능동수송 계수를 추론하는 인공지능 (시스템생물학, 머신러닝)
이 중 1, 2는 학회에 프로시딩이 합격한 상태이며 3은 SCIE에 제출된 상태다. 3을 인용해야지만 4를 문서화 할 수 있으므로 3은 조만간 아카이브에 프리프린트로 올릴 것 같다. 이번 달 안에 4를 논문으로 작성하여 또 적당한 저널에 보내는게 목표다.
이 목표가 달성되면 전역까지는 대충 7개월이 남는다. 그 7개월 안에 만들 것이 뭐냐면 반병현상수가 알려진 식물의 최적 양액 레시피를 찾아주는 인공지능이다. 이게 되면 더이상 학자들이 식물 양액 레시피를 연구할 필요가 없어진다. 그냥 적당히 타 준 양액에 식물을 꽂아놓고 센서로 데이터만 며칠 읽어오면 될 것이다. 누군가에게는 연구분야가 사라지는 일이 될 수도 있겠지만 과학 혁명이란게 원래 이런 것 아니겠는가. 앞으로 비료 성분 설계는 AI에게 맡기고 전문가는 그동안 더욱 유용한 것을 연구하는 데 시간을 쏟을 수 있기를 바란다. 그러면 우리 후손들이 식량 문제를 겪게 될 확률이 조금은 줄어들겠지.
여튼 요즘 글이 뜸했던 이유는 연구가 너무 재미있었기 때문이다. 대학원 시절에는 그렇게 하기 싫었는데. 이렇게 물적 자원과 인적 자원이 모두 모자란 곳에 배치받고 나서야 연구에 재미를 들리다니. 필자가 대학원 시절에 지금처럼 연구했으면 아마 교수님이 필자를 너무 예뻐하셔서 매일 자취방까지 차로 마중나오시지 않으셨을까 하는 생각도 해 본다.
비록 시골의 작은 관공서에 묶여 있는 몸이지만 내 지성을 인류에 공헌할 수 있음에 자부심을 느낀다. 0원이라는 정신나간 연구 예산으로 말이다. 과연 남은 복무기간동안 나는 몇 편의 논문을 더 쓸 수 있을까?
사실 여기에도 비하인드 스토리가 있다.
코딩하는 공익 사건 이후 많은 사람들이 필자를 천재라며 치켜세웠다. 필자는 그런 이야기를 전혀 인정하지 않는 사람이다. 어릴때부터 겸손을 잘못 학습했기 때문이다. 어린 시절과 학창시절에는 필자의 생각을 있는 그대로 드러내면 친구들이 잘난척 하지 말라고 면박을 주거나 괴롭혔다. 혹은 너무 치켜세워서 불편했다. 덕분에 필자는 겸손을 체득하게 되었지만 그 방법이 잘못되었다. 필자 스스로도 자신을 대단하다고 생각하지 않게 된 것이다. 그래서 필자는 자존감이 많이 낮은 편이다. 무슨 성과를 내도 성취감이 오래 가지 않는다. 즉시 사그라든다.
그런데 최근 너무 많은 사람들이 필자를 치켜세워주는 바람에 바람이 들었다. 진짠가? 그래서 객관적인 평가를 받기로 했다. 앞으로 필자가 외모나 신체적 능력으로 먹고살 길은 전혀 없어 보이므로 머리로 먹고 살게 될텐데, 장사 밑천이 얼마나 되는지를 알아보는 것은 의미가 있지 않은가.
그래서 20만원이나 주고 지능검사를 받고 왔다.
"전에 5만원 내고 시험 본 나 보고 호구라더니, 진짜 호구가 따로 계셨네!"
멘사 친구가 놀려댔다. 아무 말도 못 했다. 쩝. 시험을 치르고 결과를 받기까지 일 주일이 걸렸다. 친구들이 놀려댔다.
"야 근데 네 스펙에 아이큐가 높으면 손해야. 네가 딱 검사했는데 103 나와봐."
"그럼 강연 다녀야된다. 진짜 인간승리 아니냐?"
"백삼 반병현 선생."
솔직히 그럴싸하다고 생각했다.
결과는 생각보다 재밌었다. 전반적인 아이큐는 딱 생각했던 만큼 나왔다. 그런데 언어능력이나 추론능력은 뛰어나지만 숫자 영역 점수가 박살이 나 있었다. 이럴수가, 나 공학석산데! 결과 해석을 듣는데 심리사님이 말씀하신다.
"자부심을 가지셔도 될 것 같습니다. 제가 본 결과 중에는 제일 높네요. 그런데 숫자 영역이 인지적 약점으로 나타나고 있습니다. 불안이나 긴장과 같은 정서적 불편감이 영향을 미친 것으로 보입니다."
당일에 바로 정신과를 방문해서 검사를 받았다. 바이오 및 뇌공학과 출신으로써, 이런 인지기능의 문제는 약물로 단기간에 치료하는 것이 좋다는 신념을 가지고 있다. 아니나다를까 우울증 진단이 나왔다. 어쩐지 요즘 일에 집중하기도 힘들고 집중력도 오래 안 가더니. 심전도 검사를 해 보니 교감신경 활성이 부교감신경보다 많이 높았다.
"즉 환자분은 화가 굉장히 많은 사람이라는 뜻입니다. 속으로 쌓아 두지 마시고 표현도 좀 하셔야 합니다."
스스로에 대해서 더 잘 알아가는 시간이었다. 타고난 지능에 비해 매우 낮은 자존감으로 인한 향상심과 인정받고 싶은 욕구가 분노를 연료 삼아 굵직한 성취들로 이어졌던 것 같다. 화는 위험한 감정이다. 너무 쌓아두면 좋을 것이 없을 거라는 말에 동의한다. 항우울제와 신경안정제를 받아왔다. 검색을 해 보니 임상에서 사용하는 최소한의 용량이다. 증상이 심하지는 않았나보다.
집에 도착해서 약을 한 알 먹었다. 플라시보효과인지는 모르겠지만 당시 꽤나 기분이 신기했다. 왜인지 모르게 미뤄뒀던 일들을 척척 해낼 수 있을 것 같은 기분이 들었다. 방치했던 빨래를 다 마무리해버리고 바로 컴퓨터에 앉아 워드를 켰다. 그리고 앉은 자리에서 두 시간 반 만에 논문을 작성하고 SCIE급 저널에 제출했다.
기적은 다음날 아침에도 이어졌다. 4월에 이론을 완성하고서도 도저히 덤비지 못했던 코드를 다음날 오전에 일어나서 뚝딱 완성해버렸다. 그동안 인지능력이 얼마나 뭉개진 채로 지냈던거지? 그 뒤로 약을 복용한지 이제 10일 가량이 지난 것 같다. 지금까지 아무런 불편도 없었고, 작업능력이 몰라보게 향상되었다. 지금 최근 몇년간 가장 행복한 상태다.
그리고 무엇보다 좋은점은 치료를 지속해나가면 지능검사에서 낮게 나왔던 영역이 회복될 것이라는 기대감이다. 지금 필자는 적당히 머리가 좋은 사람이지만 머지않은 미래에는 정말로 천재라 불렸을때 덤덤하게 씨익 웃어줄 수 있을지도 모르겠다.
'코딩하는 공익' 카테고리의 다른 글
AI 석사 취급이 받고 싶었던 공익 (0) | 2020.05.29 |
---|---|
책 팔아서 차도 사고 집도 사고 결혼도 할 수 있을까? (1) | 2020.05.29 |
KAIST 출신 AI 석사가 스팸메일에 대처하는법 (0) | 2020.05.29 |
KAIST 출신 AI석사가 악플에 대처하는법 (2) | 2020.05.29 |
공익근무 중에 논문을 써도 될까? (4) | 2020.05.29 |
공무원을 위한 정부혁신 가이드 - PDI 관점 (完) (3) | 2020.05.29 |
공무원을 위한 정부혁신 가이드 - PDI 관점 (2) (1) | 2020.05.29 |
공무원을 위한 정부혁신 가이드 - PDI 관점 (1) (0) | 2020.05.29 |