129라는 숫자가 보이셨나요? 아까 수열에 +1이 된 패턴입니다. 생각보다 쉽죠? 뒤의숫자 = 2x앞의숫자+1
이제부터는 조금 다른 문제입니다.
0 1 3 7 15 29 63 127
여기서 잘못 된 숫자를 고쳐보세요.
이것의 답은 29가 아닌 31입니다. 아까 패턴에서 -1을 한건데 엉뚱한 녀석이 있습니다. 그래서 그 부분을 수열의 패턴을 "학습"을 통해 알아냈고 잘못 된 부분을 "복원"했습니다.
어쨌건 우린 일부가 망가진 수열에서 잘 못된 부분을 찾아서 고칠 수 있게 되었습니다. 왜냐하면 패턴을 함수형태로 알고 있으니 이 함수에서 벗어난 부분을 고치면 되니까요.
이번엔 일부가 망가진 수준이 아닌 모두 망가진 수열을 준비해봅니다. 이 수열은 우리가 알아낸 함수와 맞는 부분이 하나도 없습니다.
3 54 19 7 284 16 34 18
이중에 아무거나 하나를 붙잡고 복원해봅시다 저는 19를 기준으로 하겠습니다 7 11 19 36 67 131
역시 제일 위에서 알아낸 수열에서 -3을 한 것으로 했습니다. 하지만 19말곤 같은 숫자가 없네요. 이건 거의 "무에서 유를 창조"한 수준입니다. 어찌됐건 우리가 학습한 패턴에 맞게 "복원"을 했습니다.
우리는 이런식으로 "패턴을 학습"했고 이에 맞추어 "복원"했지만 사실상 "창조"에 가까운 짓을 해버렸습니다.
그런데 이 수열이라는게 말입니다. 우리가 보자마자 알아낼 수 있을 정도로 쉬운녀석들만 있는 것이 아닙니다.
이게 뭐지 싶은 규칙성따위 안 보이는 수열도 참 많습니다. 대부분의 자연현상들이 그러합니다. 그러나 과학자들은 그걸 최대한 복잡한 함수화해서 근사값형태로 중간값들을 뽑아내지요. 데이터들을 최대한 모아서 오차를 점점 줄여나가서 기어코 설명할 수 있을 정도로 수치화 합니다.
그림도 사실 규칙성따위 보이지 않는 수열입니다. 심지어 이건 그냥 수열도 아니고 2차원 수열입니다. 이걸 우린 행렬이라고 부릅니다. 고등학생때 수학을 포기한적이 없다면 한번은 들어보셨을겁니다.
정제가 잘 된 그림들을 모아 행렬로 표시하고 행렬들의 패턴을 알아내 함수 형태로 가지고 있는겁니다. 다만 그 함수가 굉장히 길고 복잡해서 여백이 부족해 적기 힘든겁니다.
하지만 컴퓨터는 단순노동으로 그 긴 함수계산을 빠르게 할 수 있고 "학습"이라는 이름하에 패턴파악을 할 수 있습니다. 그리고 인간이라는 놈들은 말도 안되는 다 망가진 노이즈 덩어리를 가지고 복원하라고 던지는거고 컴퓨터는 불평없이 복원을 하는겁니다. 매번 그림을 뽑을때마다 결과가 달라지는 것도 던지는 노이즈그림이 달라지기 때문입니다.
그렇기에 학습되지 못 한 그림은 만들지 못 하는 것이고 단순히 기존 그림들을 조합하는것도 아니라는 이야기가 되는 겁니다. 그렇기에 단순히 기존 그림들의 조합이 아니라는 것일 겁니다.
여기까지가 가장 이미지 생성알고리즘, 그 중 Stable-diffusion의 기초적인 이론입니다.
sed -i 's#C:.dmtq.db3#/home/pi/DMTQ-server/_info/dmtq.db3#' DMTQ-server/dmqglb.mb.pmang.com/score/index.php DMTQ-server/dmqglb.mb.pmang.com/djmaxQ/_vendor/_config.php DMTQ-server/pmangplus.com/accounts/v3/global/login_dmq.php DMTQ-server/www.neonapi.com/api/accounts/v3/global/login_dmq.php
그 다음 DMTQ-server/_vendor/controller/UserController.php 파일을 열어서 45번째 줄을
memberId = UserModel::nextUserId(0);
이렇게 바꿔주시면 됩니다. 이제 서버 자체는 구축이 되었습니다만 DNS설정을 해주셔야 합니다. 이 부분이 상당히 골치 아픈데 저는 hostapd를 구축해서 라즈베리파이에 와이파이 접속을 하면 DNS설정을 한번에 할 수 있게 만들기로 했습니다. 어차피 로컬 서버이니 인터넷까지 갈 필요가 없으니까요. 오로지 집에서 테크니카를 하기 위한 방법입니다.
이제 테크니카Q에 SSL파일을 넣어야 하는데 APK수정이 필요합니다. 이쪽은 자세하게 이야기 하지 않겠습니다.
apktool -d TechnikaQ.apk 이렇게 해서 우선 APK파일을 디컴파일링 하고 /home/pi/ubuntu-DMTQ/ssl에 있는 rootCA.crt파일을 복사해서 디컴파일링 된 폴더/res/raw/rootCA.crt에다가 덮어버립니다. 그리고 다시 apktool -b (디컴파일링된 폴더)
이렇게 하면 디컴파일링 폴더에 dist라는 폴더가 만들어지게 되고 여기에 apk파일이 만들어지게 됩니다. 이걸 signapk툴로 다시 사이닝하고 안드로이드 기기에 설치하시면 됩니다.
그리고 기기에서 와이파이 접속 메뉴로 들어가면 아까 라즈베리파이 설정할때 만든 SSID를 찾을 수 있는데 여기 접속 합니다. 인터넷이 안 된다고 뜰텐데 무시합시다. 당연히 인터넷이 안 됩니다.
테크니카를 이제 실행하면...뭔가 업데이트를 하면서 실행이 됩니다. 만약 오류로 꺼진다면 다시 실행해보시면 됩니다. 다만.. 커스텀롬의 경우 gapps가 없으면 오류가 나니 구글 관련 패키지가 설치되어 있지 않으면 설치해주세요. 플레이스토어가 꼭 설치되어야 실행이 됩니다.