과학

딥러닝 시리즈 ) 왜 확률을 쓸까?

딥러닝을 조금만 공부하다보면 '소프트맥스 활성화' 란 부분을 맞닥뜨릴 수 있어.

가중치니 뭐니 다 연산하고 처리한다는건 알겠는데, 그걸 '활성화' 시켜서 '확률'로 만드는 게 딥러닝의 핵심이라고 볼 수 있어.

가령 예를 들어 어떤 이미지인지 분류하는 딥러닝 모델이 있다고 하자.

 

Simple Image classification using deep learning — deep learning series 2 |  by Dhanoop Karunakaran | Intro to Artificial Intelligence | Medium

( https://medium.com/intro-to-artificial-intelligence/simple-image-classification-using-deep-learning-deep-learning-series-2-5e5b89e97926 )

이 때 딥러닝 모델은 이미지가 '차'일 '확률'을 출력하게 돼.

그런데 여기에 의문을 가진적 없어?

딥러닝이란것도 결국 코드로 이뤄진 프로그램이잖아?

개발자들은 if else 기법으로 처리하는게 기본이었는데, 딥러닝에선 왜 갑자기 확률로 처리할까?

(아마 대부분의 개붕이들은 교양으로라도 파이썬을 접해서 if elif else 이런건 다 알거야 그치?)

 

이건 두 가지 근거로 정리할 수 있어.

1. 현실 세계의 데이터는 오류가 날 확률이 있다.

2. 확률을 사용하면 오류를 잘 계산할 수 있다.

이게 무슨 소리일까? 한번 자세히 설명해볼게.

 

1. 현실 세계의 데이터는 오류가 날 확률이 있다.

 

딥러닝은 머신러닝의 하위 범주에 속해.

머신러닝이란 무엇이냐? 패턴을 직접 짜는게 아닌 데이터로부터 패턴을 학습하는 방법이야.

기존의 프로그램이라고 불린 것들은 (이른바 Rule-based) 내가 직접 코드를 짜서 알고리즘을 정해주는 방식이었어.

어떻게 생각할지를 직접 일일이 알려주는거지. 마치 수학 수업에서 학생들에게 선생님이 계산 방법을 알려주는 거라고 생각하면 돼.

그런데 머신러닝은 그게 아니라 수학 문제와 정답만 알려줘. 그러면 모델이 알아서 계산 방법을 익히게끔 하는거야.

 

이 방법은 정말 좋은 아이디어였어. 이제 수많은 개발자들이 피똥싸면서 디버깅을 하지 않아도 되고

현실에 있는 데이터를 쏟아붓기만 하면 되거든!

근데 문제가 하나 있어. 현실의 데이터는 오류가 날 확률이 있단거야.

 

A Survey of Image Classification With Deep Learning in the Presence of Noisy  Labels | by Monica Dommaraju | The Startup | Medium

( https://medium.com/swlh/a-survey-of-image-classification-with-deep-learning-in-the-presence-of-noisy-labels-570d9a44dd40 )

현실에서 데이터를 수집하기 위해서는, 예를 들어 사진 데이터를 수집한다고 하자.

그러면 단순히 사진만 찍을 게 아니라 어떤 개체인지 사람이 직접 지정을 해줘야 해.

그래야 모델이 이 사진이 어떤 개체인지 학습할 수 있잖아? (위에서 수학문제와 정답을 알려줘야 한다고 했던걸 기억해)

그런데 사람이 여기서 실수를 하지 않으리란 보장이 있어? 아니지. 데이터는 언제든지 잘못될 수 있어.

 

그뿐만이 아냐. 이미지가 아닌 텍스트 데이터라고 해보자.

누군가 "radom" 이란 단어를 쳤다고 하자. 이건 어떤 단어의 오타일까?

대부분은 아마 random의 오타라고 생각할거야. 근데 라돈(radon)이란 단어도 있거든?

심지어는 폴란드에 radom이라는 도시도 있어. 그럼 radom이란 단어는 폴란드의 radom이라는 도시를 뜻하는걸까?

아니면 random, radon의 오타인걸까? radom이 절대적으로 맞다고? 그 지방 소도시가 그렇게 많이 거론된다는거야?

 

이렇게 아무리 정신 멀쩡하게 데이터를 수집해도 항상 오류가 존재할 '가능성'이 존재해.

근데 이걸 if else로 짤 수는 없어. if else 방법은 분기를 설정하는 방법이지 가능성을 고려하는 것이 아니기 때문이야.

그렇기 때문에 이걸 표현하려면 확률을 사용할 수밖에 없는거야.

확률을 사용한다면 이 골치아픈 문제를 정말 간단하게 표현할 수 있어.

예를 들어 내가 임의로 확률을 정한다 치면

 

P("radom") = {"random의 오타" = 50% , "radon의 오타" = 25% , "radom" = 25% }

 

와 같이, "radom"이 어떤 단어에 해당할지 가능성을 정해줄 수 있지.

마치 슈뢰딩거의 고양이와 비슷하지 않아? 어떤 단어에 해당할지에 대한 가능성이 중첩되는 상황이잖아.

 

2. 확률을 사용하면 오류를 잘 계산할 수 있다.

 

이제 확률을 사용하게 되면 놀라운 일이 벌어지게 돼.

바로 가상의 확률을 가정할 수 있게 된다는 거야.

머신러닝은 실세계로부터 데이터를 일부(표본) 떼와서 학습하는 방법이야.

때문에 실세계에서 데이터가 어떨지, 데이터의 확률이 어떨지는 확언할 수 없어.

 

예를 들어볼까? 내가 위에서 만들었던 예시

 

P("radom") = {"random의 오타" = 50% , "radon의 오타" = 25% , "radom" = 25% }

 

가 진짜는 아닐거아냐? radom이란 단어가 쓰였을 때 random일 확률이 정말 50%일리 없지.

그럼 "실세계의 확률"을 구하기 위해서는 어떻게 해야할까.

확률을 계산하는 공식은 우리 모두 알고 있잖아? (특정 사건이 발생하는 경우의 수 ) / (모든 사건이 발생하는 경우의 수)

그럼 실세계의 확률을 구하기 위해서는 radom이 실제로 어떤 단어에 해당하는지, 오타였는지 아닌지

과거부터 현재까지 모든 경우를 다 따지고 조사해서, 인터넷상 뿐만이 아니라 편지에 쓰인 글씨까지 싹 다 조사해서 검토해야겠지.

이게 말이 돼? ㅋㅋㅋㅋ 이걸 무슨 수로 구해?

그렇기 때문에 항상 실세계의 확률은 구할 수 없어. 안타깝지만 모델이 실세계의 확률을 정확하게 그대로 복사 붙여넣기해서 출력하는 건 불가능해.

 

그럼 뭐야. 결국 분류작업같이 데이터를 분석하는것도 애매~모호한 확률로 출력되고

그거조차 실세계의 확률을 출력하는것도 불가능하다고?

딥러닝이 이렇게 별거 아니었어?

아냐. 실세계의 확률을 복붙은 못해도 모방할수는 있어.

 

내가 아까 말했지? 머신러닝은 실세계로부터 데이터를 일부 떼와서 학습하는 방법이라고.

그렇다면 우리는 radom, random, radon이 쓰인 데이터를 일부 떼와서 딥러닝 모델에 학습시킬 수 있겠지.

이 때 P에 유사한 P~ 를 학습한다고 해보자.

(이 때 P는 실세계의 확률모델이고, P~는 딥러닝 모델의 확률모델이야. P에 radom을 넣으면 random의 오타인지, radon의 오타인지, radom인지 정확한 확률을 출력해줘, 위에서 언급했듯 현실에서 구현할 수 없는 모델이야. P~는 우리가 P와 최대한 유사하게 만들려는 딥러닝 확률모델이야.)

P~의 입력으로 "It's radom variable" 이란 문장을 넣어주고, 이 때  "radom"이 어떤 단어에 해당하는지 확률을 구한다고 하자.

그러면 P~( "radom" |  "It's radom variable" ) = { ? } 로 표현할 수 있어. ( 저 작대기는 신경쓰지마. 그냥 내가 저렇게 표현한거 뿐이야)

 

그나저나 저 문제는 딱 보면 알겠지? 문장을 해석해보면 랜덤변수야~ 라는 뜻일거잖아? 그럼 radom은 random에 해당하겠지.

물론, 오타일 수도 있어. radon을 쓰려고 했는데 radom으로 오타가 난 걸수도 있지. 하지만 이건 아주 작은 확률이라 무시해도 될거야.

자. 그럼 Q라는 확률모델을 만들어서 이렇게 표현해보자.

 

Q( "radom" |  "It's radom variable" ) = { "random = 100%, "radom" = 0%, "radon" = 0% }

 

이 때 Q는 내가 임의로 만든 확률모델이야. 이 모델은 "radom" |  "It's radom variable"을 입력받았을 때 이렇게 아주 단순하게 출력해.

바로 내가 '이럴 때는 당연히 random이지!' 라고 생각해서 random에 100%를 때려박아서 만든 데이터야.

이렇게 해서 수학문제와 정답을 만들었어.

왜 P~를 이렇게 직접 안 만들었냐고? P~는 P와 아주 비슷하게 만들거거든. 그리고 P~는 Q라는 정답지를 이용해서 학습할거야.

바로 KL 다이버전스라는 장치가 있는데, 이 장치를 사용하면 P~는 Q를 모방하게 되지만, Q와 동일해지지는 않아.

Q를 이용해서 P~가 P를 모방하게끔 하는거지.

왜 이렇게 복잡하게 생각하냐고?

 

우선 P~는 random = 100% 이라고 안 할거야. 아마도 P는 random=99%라고 출력할테니, P~도 99%라고 출력하게 만들어야지.

그럼 P~가 random = 99%로 출력하게 하도록 직접 random = 99%라고 확률값을 정해서 학습시켜주면 안되냐고?

그럼 내가 말한 머신러닝에서 수학문제와 정답을 만드는 작업이 아주 골치아파지게 되거든.

어떤 경우에 random=99%라고 말할 수 있을까? 어떨때는 95%겠지? 또 어떨때는 50%? 사람에 따라서 그 기준이 달라지나?

 

아냐. 다 하지마. 그냥 Q를 만들듯 단순하게 만들어버려. 무조건 한쪽에 100%로 몰아버려. 그러면 데이터를 만들기 아주 쉬워지잖아.

P와 크게 달라질 경우 ( 사실 P(~) = {random = 50%, ... } 였을때) 는 어떻게 하냐고?

거꾸로 생각해보자. 이 때는 사실은 유사 데이터가 얼마 없거나 사람이 Q를 만들기 어려운 상황이야.

그 말은 Q도 잘못 만들어질 가능성이 있다는 것이지.

Q가 잘못 만들어진다는 말은 뭘까?

 

Q( "radom" |  어떤 문장 ) = { random = 100%, radom = 0%, radon = 0% }

Q( "radom" |  어떤 문장 ) = { random = 0%, radom = 100%, radon = 0% }

Q( "radom" |  어떤 문장 ) = { random = 0%, radom = 0%, radon = 100% }

 

이 세 종류의 데이터를 같이 학습해버릴 가능성이 있다는거고, 이렇게 학습된 P~는

 

P~( "radom" |  어떤 문장 ) = { random = 33%, radom = 33%, radon = 33% }

 

가 될거야.

어라? 자연스럽게 ( 사실 P( "radom" |  어떤 문장 ) = {random = 50%, ... } 였을때) 와 가까워졌네???

아주 요상스런 조화로 인해 우리의 딥러닝 모델 P~는 P와 근사하게 되었어.

 

더 신기한건

데이터가 충분하고 KL 다이버전스 장치가 잘 돌아간다면 실세계의 확률모델 P을 잘 모방하는 P~를 아주 높은 확률로 만들 수 있어.

저 잘나신 세계의 척척박사님들이 수학으로 다 증명해놨어.

이렇게 확률을 사용하게 되면 데이터를 만드는 작업도 편해지고, if else를 사용하지 않아도 되고

불확정성을 사용할 수 있게 되고, 그로 인해 도리어 실세계에서 벌어지는 일을 잘 계산할 수 있게 돼.

 

자세한 내용이 궁금하다면 속편을 써볼게. 속편에서는 KL 다이버전스가 뭔지, 학습이 실제로 어떻게 돌아가는지 써볼게.

55개의 댓글

2022.04.18

계속 써 줘

0
2022.04.18

재밌게 읽었다!!!

0
2022.04.18

읽다보니 왜 딥러닝에서 베이즈 수식이 널리 쓰이는지 자연스럽게 납득이 되는 좋은 글이었어. 고마워

0
2022.04.18
@kisssmyazz

bayesian optimization, bayesian active learning 등으로 많이 도입되긴 하는데 생각보다는 그렇게 효과적이진 않은듯. 실세계 P를 결국 몬테카를로 추정방법으로 애매하게 추론하고, 이걸 수식에 입력해서 계산하기 때문에 오류가 있는 편인듯.

0
2022.04.18

연재 계속 해 줘

 

0
2022.04.18
@꿀탱

나도 재밌는 내용 생각날때 연재하는거라 ㅎ..

0
2022.04.18
@lIIIIllIlIl

ㅎㅎㅎㅎ 좋은글 써줘서 고마워

0
2022.04.18

재밌당 유익해서 무발기 사정할꺼같아

0

KLD에 대한 설명이 기대되네요

0
2022.04.18

머리가 띵해진다

0
2022.04.18

activation function은 확률로 만드는 게 아니라 non-linearity를 더하는 게 목적임

 

일부 activation function이 마지막 단에 붙어서 확률로의 매핑 목적으로 사용되긴 하지만 기본 목적은 non-linearity를 추가함으로써 고차원에서의 모델 표현력을 높이기 위함임

0
2022.04.18
@깻잎전

그러네 맞음 그부분 수정해야겠다 softmax activation을 얘기하려고 했음

0

내일 시험볼 전공 개드립에서보니 기분이 묘하네

0
2022.04.18

information entropy에 대한 설명이 들어가야 설명이 더 분명해질것 같음ㅋㅋ

 

결국 ml,dl은 정보의 취사선택이 중요한데 취사선택을 위한 정보의 정량화가 informatiom entropy에 기반하고, information entropy는 확률에 기반하니까

 

별개로

확률론, 베이즈 추론, information theory

위에서 고전 ml, svm, rbm, perceptron이 나왔고

그 토대에서 현재 많이 사용되는 dl이 나온거라 생각해서 학문적으로 다루려면 저 순서로 접근하는게 좋은것 같아 여기 글은 학문적인 글이라기보다 흥미와 교양을 목적으로 한 글이니 지금도 충분하지만

0
2022.04.19
@ptrtype01

그렇지 사실 그렇게 넘어가는게 맞는데 너무 흥미를 잃기 딱좋잖아 ㅋㅋㅋ

0
2022.04.19

jensens inequality 증명해주세요

kld 가 0보다 크다는거 증명해주세요

cross entropy 랑 관계를 설명해주세요

classification 에서 ce loss 를 쓰는 이유가 뭔가요

classification model과 generative model 차이가 뭔가요

posterior 랑 prior 에 대해서 설명해주세요

 

0
2022.04.19
@barcode4421

4번은 여기서 설명한듯!

0
2022.04.19

개추!

0
2022.04.19

현실 세계에 데이터가 오류가 있어서 확률을 쓴다? 완벽하게 틀렸어.

일단 확률모델을 써도 여전히 레이블링 오류에 의한 문제가 발생해.

 

확률모델을 쓰는 이유는 모든 입력에 대한 분류가 애초에 불가능하기 때문이야. 500*500*3 이미지만 생각해봐도 이미 75만차원이고 각 차원의 value는 0~255. 이것을 모두 분류할 수 있을까? 불가능해.

 

그래서 네트워크의 output을 확률분포로 추정한 후 likelihood를 maximize하는 방식으로 학습을 하는거지, 레이블링 오류하고는 전혀 다른 이야기임.

 

1
2022.04.19
@츤보미

확률모델이 현실세계의 오류 (너가 말한 레이블링 오류) 를 고려할 수 있는 도구이므로 확률모델을 사용한다고 한거지, 그걸 완벽히 해결한다고 말하진 않았어. 그걸 완벽히 해결하는건 오로지 Ideal P를 구하기 위해 전세계의 모든 데이터를 구하는거겠지

 

네트워크의 output을 확률분포로 추정하는건 Ideal P에 근사시키기 위한 과정이지, sparse한 데이터를 다루기 위한 과정이 아님. 그래서 컨볼루션이 나온거잖아?

0
2022.04.19
@lIIIIllIlIl

혹시 네이버 블로그 같은거 보고 공부한건가? 왜 자꾸 이상한 소리를 하지..

위에 언급한 classifcation은 Ideal P를 찾는 과정이 아니라 likelihood를 maximize할 수 있는 네트워크 파라미터를 찾는거야. GAN 같은거 겉핥기로 보고 하는 말인거 같은데 다시 공부하는게 좋을듯?

1
2022.04.19
@츤보미

아니 님아 그 maximize하는 target이 뭐냐고요 ㅋㅋ 그리고 likelihood가 아니라 probability겠지 discrete한 공간에서 왜 자꾸 likelihood를 언급하는거지? 너 뭐 model confidence 개념도 모르냐

0
2022.04.19
@츤보미

애초에 likelihood를 maximize한다는건 뭐임? classification에서 batch에 대한 평균 log-likelihood 말하는거임? 그게 어디서 온건지 알고 말하는거 맞지? 애초에 왜 배치로 수행하는데? 니말대로면 배치로 수행할 이유도 없고 sgd가 나온 이유도 없는데?

0
2022.04.19
@lIIIIllIlIl

기분 나빴다면 미안ㅋㅋ 뭐라 하려는건 아니었음.

내가 말한건 공부하면 다 알 수 있는 내용이니까 천천히 하면 될듯.

0
2022.04.19
@츤보미

병신이냐 너?

0
2022.04.19
@츤보미

파트타임 따까린거같은데 작작깝쳐라

0
2022.04.19
@lIIIIllIlIl

인터넷의 문제점이지 병신도 글을 쓸 수 있고 전문가의 글을 병신이 깎아내릴 수 있는 양 상황이 다 가능하다는게 ㅎㅎ 나야 뭐 학부 때 수박 겉만 핥아보고 지금 전혀 다른 일 하고 있어서 누가 더 전문적인진 모르겠지만 알겠는건 지식을 떠나 말투가 병신같은건 쟤같네

1
2022.04.19
@뀨뀨뀨꺄꺄꺄

train error test error만 알아도 반박되는 얘기임. 모든 머신러닝 교과서의 1장에 나오는 얘기. classification이 정말 train error만 최소화하는 방향으로 작동해서 끝나는거라면, test error를 측정할 필요도 없고 애초에 딥러닝이 나올 이유도 없음 feature shrinkage엔 pca svm이 무조건 최강이니까

0
@lIIIIllIlIl

무슨 일하는지 물어봐도대까? 컴퓨터 비젼 이런쪽 일 하는거야? 글구 교과서라고 하면 보통 어떤 책들 말하는거임? 책 추천좀.. 공머인데 코딩 일자무식이다가 학부 졸업 직전에 머신러닝쪼금 배우구 석사하는데 머신러닝 필요해서 부랴부랴하는데 기본기가 업떠..

 

0
2022.04.19
@응애애기모코코

난 글쓴이는 아닌데

학문적인거 필요하면 Artificial intelligence, A modern approach 이거랑

Pattern recognition and machine learning

 

이 두개 추천함

0
2022.04.19
@응애애기모코코

더하자면 나는 석사하는 중이고 an introduction to statistical learning, 오일석 교수님 교재로 공부했음 그외에도 스탠포드 ocw도 괜찮음

0
@lIIIIllIlIl

학부가 컴공임? 석사하는데 온갖 곳이 다 머신러닝 하드라.. 코딩 알못인대 실험 안하고 시뮬돌리는 곳 왔는데 어질어질하당

0
2022.04.19
@응애애기모코코

ㅇㅇ 우리가 알아서 함 ㅜ

0
@lIIIIllIlIl

알아서 한다는게 연구 걍 알아서 하게 냅둔단거임? 토픽만 정해주고?

0
2022.04.20
@응애애기모코코

아 그건아니지 코딩을 우리가 알아서 한다는뜻

0
@lIIIIllIlIl

석사만 하는거야? 글구 언제 석사하기로 맘먹음? 난 학부 있을때 재미있던 쪽이라 왔는데 내가 생각한거랑 많이 달라서

답답함.. 언어 자체가 옛날거 쓰는데( 연산력이 중요해서 어쩔수가 업슴) 자료가 별로 없어서 답답하더라 머신러닝은 붐이 일어서 그런지

정리된 자료도 제법 많고 논문들도 깃허브에 자기 코드들 올려줘서 비교 가능하고 이런거 좀 부럽더라.. 강 학부 그대로 왔는데

뭔가 좀 후회됨 방향을 좀 틀어보는 것도 괜찮았을 거같은데 분야가 좀 마이너해서 그런지 정보얻기도 힘들고 교수님도 좀 방임형이고..

0
2022.04.21
@응애애기모코코

무슨 임베디드에 올리는 모델 연구함?? 난 코딩 싫어해서 유일하게 좋아한게 데이터분석 쪽이라 오게됨 한 3-2쯤에 석사하기로 결심했는데 더 할지는 모르겠다 우리는 환경도 좋고 다 좋은데 소수인원이고 박사가 졸업한상태라 최신 트렌드 지도해줄 사람이 없네

0
@lIIIIllIlIl

너가 말하는 임베디드가 먼지는 모르겠어 난 유체역학쪽이고 CFD라고 유체를 시뮬레이션 하는쪽을 함 언어를 포트란을 쓰는데

옛날 언어인데도 수치해석 분야에서는 연산력이 중요해서 여전히 강세고 어쩔수없이 쓴다고 하더라

전투기, 로켓, 기상 예측 이런데는 여전히 많이 쓰는거 같더라

코딩 포함해서 컴퓨터는 진짜 알못이다가 교수님도 자기 석사하기 전까지 이런 언어 있는줄도 몰랐다고 상관없다했는데

와보니까 아닌거같음…

이 분야는 랩별로 in house code가 있는 식인거같은데 컴공쪽이 아니라 그런지 코드 깃허브로 공유하고 이런게 없음

코드 내용이 유동 해석을 위한거라 유체의 지배방정식을 푸는 수치 해석법들을 코드로 변환한건데

그냥 그 해석법들 자체도 수학적으로 어려운데 (논문 참고문헌 파서 몇개 찾아보면 흐름은 이해할 수 있는 수준)

이걸 코드로 변환 해놓으니까 더 모르겠음

내가 코드를 1년넘게 돌리고있는데 껍데기랑 이론만 알고 이론이 어떻게 정확하게 코드로 구현되어서 돌아가는지를 모름

그나마 출력된 데이터 후처리 하는 부분만 내가 코딩해서 필요한 데이터 뽑아내는데 그마저도 안되는 경우가 많고..

교수님은 연구자라면 토픽 던져주면 알아서 할 수 있어야 된다면서

8~90퍼는 니가 채워오고 나머지 10~20퍼 방향성만 내가 가이드 해주는 거다 하시는데..

애초에 내가 스스로 연구할만한 코딩 실력이 안갖춰진 상태에서 와서 그런지 성장을 못하고 쳇바퀴 도는 느낌이 들더라고

내 연구주제가 어느정도 유동제어가 되면 머신러닝으로 학습시켜야 되서 논문 몇개 봤는데

여긴 논문에다가 깃허브 주소 박아서 코드 공유 해주는거보고 좀 부럽다고 생각이 들더라고..

뭔가 기초를 다지려면 여러 책을 봐야되는데 교재가 하나뿐인 느낌임

0
2022.04.21
@응애애기모코코

와 진짜 좀 그렇다 나도 복잡한 모델 보면 100% 코드 이해는 절대 불가능함 텐서플로우나 토치같은 라이브러리를 랩핑하고 랩핑한 코드를 돌려쓰는거라 역전파, 가중치 업데이트 이런거까진 안봄 심지어 모델 구조도 제대로 안보는경우도 있음

그래도 랩핑을 잘하는사람들이 많아서 그걸 돌려써야 어느정도 서로 진전이 있을텐데 포트란같은거면 객체단위로 뭐 만들기도 어렵겠다 애초에... 근데 난 이해가 안가는게 도대체 어느정도의 성능개선이 있다고 그걸 포트란으로 짜는거지..? 포트란으로 GPU에 데이터 뿌려주는게 오히려 더 힘들지 않나? 그냥 CUDA랑 C++백엔드로 다 짜놓은 텐서플로 쓰면 되잖아. 아님 머신러닝을 아직 도입단계로만 써서 GPU를 활용할 수 없으니까 그런거야?

0
@lIIIIllIlIl

유동해석 자체가 방정식을 풀면서 유동장의 시간에 따른 속도 압력 같은 시계열 데이터를 생산해내는 방식임

포트란으로 머신러닝을 하지는 않아

이게 연산력 차이가 중요한데 포트란은 컴파일러 방식의 언어인데 파이썬이나 이런 인터프리터 언어는

안에 라이브러리가 잔뜩 들어있어서 무겁고 그 포인터? 뭐 그거 설정하는 방식 때문에 연산력에 차이가

있다고 하더라고.. 포트란 대신 C로 대체되는 경우는 있다고 들었어 같은 컴파일러식 언어라..

컴퓨터쪽 지식이 없어서 그냥 주워들은 말 정도로 밖에 설명을 못하겠네..

연산력이 중요해서 인지 슈퍼컴퓨터 nurion 신청해서 사용하고 있기도 하고

랩에 박사 형이 있는데 머신러닝은 텐서플로랑 파이토치로 하는데 보니까 데이터를 생산해내는게 포트란이다보니까

포트란에서 데이터 생산하는걸 받아와서 학습시키고 그런식으로 하는거 같더라고?

데이터 생산은 CPU로 포트란으로 된 코드로하고 GPU로 머신러닝 시키는 그런 식인거로 알고있음

0
2022.04.21
@응애애기모코코

그럼 자연스럽게 GPU를 잘 못쓰겠네 시계열 데이터같은데 쥐약임 GPU가... 단일 데이터를 처리하는데 있어서는 CPU + C 혹은 너가 말한 포트란이 최고겠지. 파이토치나 텐서플로는 일을 결국 GPU한테 시키는게 핵심이라 CPU는 거의 안쓰거든

방정식이 이미 정해져 있는거지? 파라미터가 많은 모델로 근사시킨다면 GPU를 사용할법도 한데 그게 아니라면 답이 없겠네

0
@lIIIIllIlIl

ㅇㅇ 방정식은 이미 200년전에 나온건데 지금도 analytic하게는 안 풀리는 난제라 코드로 수치해석적 으로만 품

0
2022.04.19
@츤보미

다른건 차치하고 500*500*3 이 왜 75만 차원이냐 3차원이지ㅋㅋ

3으로 예시든거 보면 width * height * channel 예시로 하려고 한것 같은데ㅋㅋㅋ

 

시작하는 문장이 틀려있어서 뒤는 읽지도 않았다만

0
2022.04.21
@ptrtype01

ㅋㅋㅋ 시바 75만차원 드립 들으면 진짜 지도교수님 한숨쉬겠누

0
2022.04.21
@Fuel

쫓아와서 대가리 깨도 무죄지

0
2022.04.19
@츤보미

likelihood의 뜻이나 알고 쓰는걸까나..

0
2022.04.23
@단다다다단

ML에서 무슨의미로 씀?

0
2022.04.19

컴공 개붕이들 ..

0
2022.04.19

재밌다

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 34 LinkedList 12 2024.04.14
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 2024.03.23
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23