-
Notifications
You must be signed in to change notification settings - Fork 10
/
0151.txt
304 lines (304 loc) · 16.1 KB
/
0151.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
예, 포프입니다.
아직도 마이크가 없어요.
그래서 소리가 왕왕 울릴텐데
머신러닝이라는 거에 대해서 저번에 한 번 비디오를 제가 올렸죠.
그러면서 그 뒤에
제가 이제 지금 대학원을 또 다니고 있는 게 있어요, 조지아테크.
그거 전공을 머신러닝으로 조금 돌릴려고 하면서,
머신러닝 코스도 조금 들어보면서,
머신러닝에 대한 이해를 조금씩 높이고 있어요.
최근 들어서 내가 왜 머신러닝을
이렇게 좋아하는지를 깨달은 거 같아요.
일단
머신러닝엔 크게 세 가지가 있어요.
더 있을 수도 있는데 제가 아는 건 세 가지.
하나는 이제 수퍼바이즈드 머신러닝
(Supervised machine learning)이라는 게 있고,
그 다음엔 이제 언수퍼바이즈드
(Unsupervised)라는 게 있고,
그 다음엔 리인포스먼트
(Reinforcement)라는 게 있어요.
나머지 두 개는 제가 아직 잘 모르니까 말씀을 안드려도,
수퍼바이즈드(Supervised)란 개념은 그거에요.
일단
이미 저는 뭐라고 그럴까, 데이터가 있는 거에요.
예를 들어서, 옛날에 이런 이런 이런 일이 있었다.
예를 들어서, 그냥 날씨로만 이야기를 하면
온도가 10도 였고 바람이 풍속 몇 km로
어디에서 어떻게 불었고
하늘은 맑았더라던가 구름이 있었다거나
그러고 공기오염도는 얼마였고,
이랬을 때, 어떤 이 결과가 나왔냐 안나왔냐
그 결과가 뭐라고 할까요?
예를 들어서, 내가
호흡기 질환이 있었냐,
예를 들어서, 숨을 쉬기가 어려웠냐, 예스(Yes), 노(No),
이 정도의 값, 값이 나오잖아요?
그러면 그걸 매일매일 제가 데이터를 모았을 때
이 각자 아까 말한 하늘이 맑았다, 뭐하다, 뭐하다, 뭐하다,
이런게 어트리뷰트(Attribute)라고 해요.
이런 속성들이 있었을 때,
이 결과가 예스(yes)였나, 노(no)였나
그거를 제가 매일 매일 데이터를 모으게 되면은
1년이 지나면 365 모으게 됐고
그거를 저와 같은 사람들은
그룹을 1000명을 모아서 하면은
1년에 365 곱하기 1000,
365,000개 정도가 나오겠죠.
그럼 그렇게 데이터가 있어요.
그러면 오늘, 다음 날이 된거에요.
그럼 다음 날,
오늘 날씨는 이렇고, 저렇고, 저렇고, 이렇고, 저랬을 때,
과연 내가 호흡기 질환을 앓을 거냐, 말 거냐를
예측하는 게 수퍼바이즈드(Supervised) 머신러닝이에요.
이게 왜 수퍼바이즈드(Supervised)라고 이야기를 하냐면,
수퍼바이즈드(Supervised)는 이제,
정확히 한국말로 번역이 어떻게 되는지 모르겠는데.
매니저 같은신 분들 있잖아요.
그 분들이 수퍼바이저(Supervisor)에요.
저희를 관리해주고, 이렇게 해주고.
결과적으로 원래 알고 있던 그 데이터들에서,
오늘 어떤 일이 있을건지 결과를 이걸 뭐라 그러죠?
유추? 2개 있잖아요?
인덕션(Induction)은 이렇게 모든 데이터에서
하나 결과를 뽑아내는 거고,
디덕션(Deduction)은 원래 명제인가, 그런게 있으면,
거기에서 다른 필수불가능한, 필수불가결한,
그런 명제를 뽑아내는 거.
그래서 위에서 아래로 오는게
그러니까 원래부터, 뭐라고 해야돼, 뭐라고 그래요.
원칙이 있고 거기서 다른 원칙을 뽑아내는게 영어로 디덕션(Deduction)이라고 하고,
이런 다른 데이터가 있을 때,
이거에 공통되는 명제인지, 원리인지를 뽑아내는게
인덕션(Induction)이라고 하거든요.
귀납법, 유추법, 이런 거 같아요.
제가 볼 때는 이게 귀납 같고,
위에서 아래로 가는게 유추 같은데.
틀릴 수도 있어요.
그거는 알아서 찾아보시고.
이 슈퍼바이즈드(Supervised) 머신러닝은 말 그대로
이렇게 데이터가 있을 때,
거기에 공통되는 원칙을 찾아나가는 거에요.
한 마디로 인덕션(Induction)이죠.
그래서 이게 슈퍼바이즈드(Supervised)이고
언수퍼바이즈드(Unsupervised)는
그렇게 미리 알려진 결과가 없는 거고,
리인포스먼트(Reinforcement)는
그렇게 찾아감에 따라 그 결과를 계속
그 결과를 다시 원래 데이터셋(data set)에 넣어가지고
뭐라고 그러지?
그걸 추측할 수 있는 그런
알고리즘을 더 강화시키는 거에요.
머신러닝의 장점은
데이터가 문제에요. 사실은 이게
이런 상황에 따라 따로 if-else문을 짜겠다 이게 아니라,
이런 어트리뷰트(Attribute)가 있을 때,
어떤 결과가 나올건지를,
추측을 하는, 굉장히 범용적인 알고리즘이 있어요.
그럼 그거만 돌리면 결과가 나올 수 있는거죠.
100%는 아니죠, 당연히.
하지만 충분히 좋은 결과가 나올 수 있고,
여러 가지 기법이 있기 때문에
정확도를 무슨
제가 이런 저런 데이터 넣었을 때,
80% 정도까지는 왠만큼 나왔던 거 같고,
그리고 얼마나 그걸 트레이닝을 시켰느냐에 따라 다르고,
그리고 이거의 또 장점은 뭐냐하면
데이터가 예를 들어서 몇 만개가 있다고 해봐요.
그러면 새로운 이런 어트리뷰트(Attribute)가 들어왔을 때,
과연 이 결과가 어떨 거냐를 알기 위해서 모든 데이터를 훑을 필요가 없어요.
이 데이터를 미리 훑어놔서
그거에 필요한 무슨 알고리즘 수첩처럼
만들어놓는다면은
이 과정을 트레이닝이라고 하거든요.
트레이닝만 거쳐 놓으면은 그 트레이닝에서 나온
디시전 트리(Decision tree)라든가,
디시전 트리란 뭐냐하면 말그대로 if-else문인데,
그 if-else문을 그 알고리즘에 기초해서
자동으로 만들어주는거 뿐이에요.
그런데 그 if-else가 굉장히 깊은 if-else가 아니라
데이터가 30,000개 있었고 어트리뷰트(attribute)가
4개 였다면 트리 구조로 한 2개 정도되는
어트리뷰트(attribute)가 10개 있었다고 해도
트리 구조로 한 어트리뷰트(attribute)
몇 개하면서 결과가 나올 수 있는,
확률 또한 한 80% 이 정도로 나오게 할 수 있는 그런 거거든요.
그래서 그 if-else문이 깊지 않을수록 좋은 거니까,
그거를 만드는 게 디시전 트리라고 하고
그 외에 뉴럴네트워크(Neural Network)라든지,
Nearest Neighbor라던지, 그건 좀 느리고요.
그건 매번 다 데이터를 긁어야 되기 때문에.
그런 한 3~4개 정도의 굉장히, 뭐라고 그럴까?
기본이 되는 알고리즘이 있고,
그 알고리즘이 충분히 잘 돌아요.
그 성능을 향상시키기 위해
여러 가지 다른 걸 할 수도 있고,
부스팅(Boosting)을 한다던가, 여러 가지가 있거든요.
이거는 대부분은 굉장히 이미 잘 알려져 있는 알고리즘이고,
대부분은 액셀 스프레드시트(Excel Spreadsheet)처럼,
데이터만 넣으면 왠만한 결과를
가져올 수 있는 그런게 나와요.
심지어는 머신러닝으로 제가 그거 하는 거까지 봤어요.
이미지를 딱 줘요, 머신러닝에.
물론 트레이닝을 다 시킨 다음에.
그러면 그게 머신러닝이 이미지를 다 분석을 해서
이 이미지는 빨간색 옷을 입은 여자가
파란색 우산을 들고 길가를 걷고 있다,
이렇게 텍스트로 만들 수 있는 수준까지도 있어요.
그건 100%는 아니지만.
얼마나 트레이닝을 시켰느냐에 다른 거죠, 그건 다.
그래서 결과적으론 이게 대충 머신러닝이, 특히 수퍼바이즈드 머신러닝이 어떻게 도느냐고.
제가 이걸 좋아하는 이유를 최근에 알았어요.
제가 굉장히 판단을 좀 빨리 하는 편이거든요.
사람에 대해서라던가.
좋고 싫음에 대해서라던가.
가끔 사람들이 물어봐요.
너 왜 이렇게 판단을 빨리 하냐.
사람한테 기회를 줘야 하는거 아니냐
그럼 제가 하는 이야기는 그렇죠, 저는.
여태까지 이런 부류의 사람을 봐왔고,
저는 그 사람들 중에서 공통 요소와
다른 점을 많이 찾는 거 같아요.
이렇게 이렇게 공통된 요소가 있는 사람을 봤을 때,
내 예전 경험에 비추어서
이런 이런 사람들은 이런
결론을 내렸기 때문에
간단하게 말하면, 나하고 맞는 사람, 안맞는 사람이겠죠.
그래서 그 뒤부터는 별로 제가 어울릴 필요가 없는 사람,
이런 식으로 생각을 하는 거에요.
물론 그러면서 저는 언제나 제가 틀리면,
잘못했다고 이야기를 하고,
내가 틀렸다고 인정을 해요.
근데 제가 그거를 물론 처음부터
결정을 안내리고 기다려도 되는데
결정을 빨리 내리는 이유는 보통 그거였어요.
제가 상대하고 싶지 않은 사람들은 상당히 다른 사람들을
이용을 해먹기를 좋아하는 사람들이 많아요.
다른 사람들한테 사기치는 이런 사람들.
그런 사람들한테 기회를 주기 시작하면은 이미 그 사람들은 사기칠거 다 치고나서
마지막에 저희가, '뭐야, 이새끼들, 이 새끼 뭐야.'
그리고 내치더라도 이미 저희가
사기당한 사실은 변함이 없고,
그 사람들은 다른 데를 가서도
역시 또 다른 사람들 사기치고 다닐 것이기 때문에
오히려 쓸 데 없는 사람한테 기회를 주는게 아닐까라는 생각을 많이 했고요.
차라리 이 사람이 원래부터 이런 사람이다,
제가 판단을 내리는 순간,
저는 그 사람한테 사기칠 가능성은 없고,
다만 그 사람이 정말 무슨 이유에서든,
자기를, 자기가 그렇지 않은 사람이라는 거를
증명할 기회가 있다면
그러면 제가 미안하다고 하고 하면 되는 거라고 생각하거든요.
왜냐하면 저는 제가 그 사람한테 사기치지 않으니까.
제가 그냥 그 사람이 싫다는 이유 하나 때문에,
제가 그 사람한테 피해를 줄 건 없거든요.
저는 그런 식으로 보통 개념으로 갔어요, 그래서.
그 생각 자체가, 그러니까 제 두뇌가
여태까지 작동했던 자체가.
굉장히 머신러닝에 가깝더라고요.
모든 거에 패턴을 찾아서,
저는 되게 패턴 찾는 거 되게 좋아하거든요.
그 패턴을 어떻게 결합을 시켜서,
이 패턴, 패턴이 있었을 때, 결과가 이거였고,
그거에 대한 충분한 데이터가 쌓였을 때는,
이거는 거의 한 80~90% 확률로 이거로 가겠구나라는
그런 분류를 되게 잘했던 거 같아요.
제가 생각하는 그 과정 자체가.
그래서
그게 저한테 특별하게 다가왔던 것 같아요.
제가 생각하는 패턴 자체가 컴퓨터로 돌 수 있다는 자체.
솔직히 제 생각 자체는 컴퓨터의 생각은 아니거든요, 어떤 의미에서.
컴퓨터는 언제나,
정말 이상한 버그가 있어서,
전류 상의 오류가 있지 않는 이상은
바이너리(Binary)잖아요. 0 아니면 1.
모든 거는 말그대로 디덕션(Deduction)의 방법으로 작동했던 거 같아요.
유추라고 하나? 하나가 명제가 있고
그 명제에서 파생명제나 결과가 나오는.
제 두뇌는 언제나 이 불확실한 세상 속에서,
그거를 하고 싶지만 못하기 때문에.
패턴을 찾아서, 그 패턴에 맞는
결과를 찾아왔던 거거든요.
그거 보면서 이게 내 머리하고 맞아서
내가 머신러닝을 되게 좋아하는 거구나 생각이 들었어요.
심지어는
제가 2주 휴가를 갔다 왔어요, 최근에.
솔직히 말씀드리면 한국으로
갔다 왔는데 가족사가 있어서,
제가 뵌 분은 한 3~4명 정도인 것 같아요.
그래서 이제 이유를 왜 그랬냐고 물으신다면
저번 저번 편에 말했던 제 감정적인 문제도 있었고,
그래서 사람을 보고 싶지 않은 것도 있었고.
그리고
저는 2주 갔다 오는 동안 집에서 한 1주 반 정도는
이 컴퓨터 잡고 머신러닝만 하고 있었던 거 같아요.
그래서 그 때 하면서는 이게 그렇게 재밌다는 생각은 안했는데,
그냥 열심히 하고, 이게 이렇게 도는 거구나, 발견했는데
그 휴가 끝나고 나서, 딱 이제 돌아와서 이제 다시 정상생활을 시작하면서
진짜 오랜만에
휴가가 너무 좋았구나라는 생각이 드는 거에요.
저는 한 번도 휴가를
즐겨한 적이 별로 없어요, 사실 최근에.
그냥 저는,
다시 회사로 돌아가서 일하고 싶은 마음이 더강하거든요,
왜냐하면 재미있으니까.
근데 요번에는 딱 돌아오고 나서
제가 학교 공부를 별로 안좋아함에도 불구하고,
제가 학교, 공부는 제가 잘해요.
근데 별로 이게 도움이 된다고 생각하는 사람은 아니거든요, 저한테.
근데 그 이야기를 하는, 언제나 그랬기 때문에
학교 숙제라는 거를 그렇게 막 재밌어서 한 적도 최근에 없고.
그래서 언제나, 휴가 동안에 학교 공부를 하면서
이거를 밝혀 간다는게,
제가 지금 하는 일보다 재밌다라는 거, 그리고
진짜 그때로 다시 돌아가 더 하고 싶다는 생각이 드는게 너무놀라웠어요, 사실 최근에.
그러고 제가 휴가다닐 동안 보통 많이 놀고 술먹고 이러잖아요, 저는.
저는 휴가인 동안 술을 거의 입에 대지도 않았어요, 딱 하루 입에 댔나?
그것도 많이도 아니고 맥주 몇 캔.
제가 그걸 보면서
그리고 딱 돌아오자마자 다시
일상 생활으로 돌아오는데 다시 그냥 술먹고 노는 걸 보면서
내가 진짜 뭔가를 잘못 살고 있구나 지금.
내가 내 일이 재미가 없구나라는 걸 다시 한번 느끼는 계기였고, 보통 하는 일이 지금.
재미있는 일이라고는 생각은 안했지만
이 정도로 딴 쪽이 좋을 정도로 그럴까,
딴 쪽이 그리울 정도로 그럴까라는 생각이 들었고.
그리고 어떤 의미에서는 내가 머신러닝 쪽을 정말 관심이 있구나, 정말 흥미로운 분야라고 생각하는구나
생각을 또 했어요.
그래서 또 이번에
가서 만났던 사람들 중에 한 명
제가 가끔 농담처럼 노예라고 부르는 애인데
그 친구랑 또 이런 저런 이야기하면서
또 아이디어도 좀 많이 받은 게 있고,
뭐 좀 복잡한 아이디어, 간단하게 만들었고.
그 간단한 아이디어를, 데이터가 확실한 아이디어고.
이 데이터를 수집도 가능할 것 같고,
그 순간에 이 데이터는 어떻게
머신러닝을 돌려서 어떤 결과를 찾고 싶냐,
라는게 굉장히 흥미로워졌어요.
그래서 이것도 뭔가 가능하겠구나해서 요즘 좀 생각을 많이 했고.
최근 들어서 가장 그래도
생산적인 생각을 한거는 그건 거 같아요.
그거 하고 이제 다른 거 또 하나 하고 있는게 있는데,
이건 아직 밝히긴 좀 이른 거 같고.
아직 확실치도 않고.
이 두 가지 아이디어를 생각하면서 그나마
좀 살만하구나라는 생각을 요즘 했어요.
지금 마음으로는 그냥
여기에 올인하고 싶은 마음도 좀 많이 들고.
그리고 어떤 의미에서는 제가 이제 학교를 그냥
파트타임으로 온라인으로 듣고 있는건데.
지금 페이스로 가면은
제가 아마 졸업을
올해 아니고 내년 한 5월쯤에 할 거 같아요.
근데 이거를 말그대로 제가 여기 그냥 올인하면서
그러면은 학교도 좀 더 많이 다닐 수 있을 것 같고,
그러면 올해 안에 끝낼 수도 있지 않을까 생각도 들고.
요즘 좀 생각이 많긴 많아요, 그래서 그렇구나.
라는 생각을 하고 있죠.
그래서 뭔가 굉장히 신나게 이야기를 시작했는데
결론은 좀 뭔가 암울해지는 이런건데.
일단 이 정도로 끊고
다음 편에서 좀 더 이야기를 다른 거를 할게요,
머신러닝 말고 다른 쪽으로 이번에.
예, 포프였습니다.