All language subtitles for 【漫士科普】90分钟深度!一口气看明白人工智能和神经网络#人工智能 #神经网络
Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,133 --> 00:00:03,933
人工智慧機器學習神經網路
2
00:00:04,133 --> 00:00:06,000
這些聽起來高大上的詞彙
3
00:00:06,000 --> 00:00:07,466
你是否還一知半解
4
00:00:07,800 --> 00:00:10,200
GPT大語言模型生成式AI
5
00:00:10,300 --> 00:00:12,200
這些頻繁出現在商業報道
6
00:00:12,200 --> 00:00:14,433
乃至於日常生活的前沿技術
7
00:00:14,433 --> 00:00:15,600
你是否好奇
8
00:00:15,600 --> 00:00:18,233
它們的發展、淵源和基本原理?
9
00:00:18,533 --> 00:00:20,033
萬物皆可AI的時代
10
00:00:20,033 --> 00:00:22,800
你是否擔心被割韭菜或者被動失業
11
00:00:23,233 --> 00:00:24,666
這期視頻耗時半年
12
00:00:24,666 --> 00:00:26,466
專為零基礎的觀眾打造
13
00:00:26,500 --> 00:00:29,500
將實打實講明白人工智能的來龍去脈
14
00:00:29,600 --> 00:00:30,500
我是漫士
15
00:00:30,533 --> 00:00:31,533
一位畢業於清華
16
00:00:31,533 --> 00:00:33,000
姚班的人工智能博士生
17
00:00:33,000 --> 00:00:34,200
從本科到研究生
18
00:00:34,200 --> 00:00:35,866
所有AI課程全部滿分
19
00:00:35,866 --> 00:00:37,033
排名年級第一
20
00:00:37,333 --> 00:00:39,633
目前正在從事深度學習理論的研究
21
00:00:39,633 --> 00:00:41,200
剛從普林斯頓回國
22
00:00:41,666 --> 00:00:43,000
視頻製作實在不易
23
00:00:43,000 --> 00:00:44,466
還望點贊多多支持
24
00:00:44,466 --> 00:00:46,266
看不完可以收藏或關注我
25
00:00:46,266 --> 00:00:47,266
之後慢慢看
26
00:00:50,400 --> 00:00:51,266
1956年
27
00:00:51,266 --> 00:00:54,366
一群科學家齊聚達特茅斯開了一場會
28
00:00:54,366 --> 00:00:55,966
這場會議持續一個多月
29
00:00:55,966 --> 00:00:57,700
一共只有十來個人參加
30
00:00:57,700 --> 00:00:59,133
但個個都是大佬
31
00:00:59,400 --> 00:01:00,066
他們包括
32
00:01:00,066 --> 00:01:02,366
達特茅斯的數學系教授麥卡錫
33
00:01:02,466 --> 00:01:04,600
哈佛大學數學與神經科學研究員
34
00:01:04,600 --> 00:01:07,133
閔斯基,IBM主管羅徹斯特
35
00:01:07,300 --> 00:01:09,266
信息論發明人香農等人
36
00:01:09,600 --> 00:01:12,100
但就是這樣一場很小小的會議
37
00:01:12,100 --> 00:01:15,000
深刻的改變了幾十年後世界的樣貌
38
00:01:15,466 --> 00:01:17,866
8年前戰勝李世石的AlphaGo
39
00:01:17,933 --> 00:01:20,866
如今能幫我們解決各種日常問題的GPT
40
00:01:21,066 --> 00:01:21,566
本質上
41
00:01:21,566 --> 00:01:24,800
都起源於這場會議所發起的研究
42
00:01:25,200 --> 00:01:27,933
如何製造出一種可以不斷學習
43
00:01:27,966 --> 00:01:30,100
並模擬人類智慧的機器呢
44
00:01:30,766 --> 00:01:33,766
這個領域在2018年拿到圖靈獎之後
45
00:01:33,766 --> 00:01:34,700
又在今年
46
00:01:34,700 --> 00:01:37,500
一舉斬獲了諾貝爾物理獎和化學獎
47
00:01:37,766 --> 00:01:40,533
是的這個領域就叫人工智慧
48
00:01:40,733 --> 00:01:41,866
而這場會議
49
00:01:41,866 --> 00:01:44,566
也被視為開創人工智慧的起點
50
00:01:44,600 --> 00:01:47,766
達特茅斯會議
51
00:01:47,866 --> 00:01:50,500
人工智慧,說白了就是人工搭建起一套智慧
52
00:01:50,733 --> 00:01:52,000
要實現這個目標
53
00:01:52,100 --> 00:01:54,533
首先就要回答一個非常根本的問題
54
00:01:54,800 --> 00:01:55,866
什麼是智能
55
00:01:56,266 --> 00:01:57,000
我們想想
56
00:01:57,000 --> 00:01:58,066
生活裡什麼時候
57
00:01:58,066 --> 00:02:00,300
我們會覺得一個物體有智能呢
58
00:02:07,333 --> 00:02:08,900
比如說我們跟狗說話
59
00:02:08,900 --> 00:02:10,666
讓它坐它就會坐下
60
00:02:10,700 --> 00:02:12,566
讓它叫它就會叫兩聲
61
00:02:12,666 --> 00:02:13,800
你罵它兩句
62
00:02:13,800 --> 00:02:15,800
它就會一臉幽怨的盯著你
63
00:02:16,000 --> 00:02:17,466
此時我們會覺得哎
64
00:02:17,466 --> 00:02:18,900
這隻小狗很聰明
65
00:02:18,900 --> 00:02:20,966
有靈性有靈性
66
00:02:20,966 --> 00:02:22,166
本質上就是說
67
00:02:22,266 --> 00:02:24,500
狗是一種有智能的生物
68
00:02:24,533 --> 00:02:26,066
和石頭什麼的不一樣
69
00:02:26,133 --> 00:02:27,766
你無論怎麼叫一塊石頭
70
00:02:27,766 --> 00:02:28,766
它都無動於衷
71
00:02:28,766 --> 00:02:30,166
所以是一個死物
72
00:02:30,933 --> 00:02:34,000
正因此儘管有關智能的定義千千萬
73
00:02:34,000 --> 00:02:36,366
但他們都逃不開這樣的核心
74
00:02:36,733 --> 00:02:38,200
智能本質上就是通過
75
00:02:38,200 --> 00:02:39,366
收集信息
76
00:02:39,500 --> 00:02:42,766
對於不同的情景作出針對性的反應
77
00:02:43,333 --> 00:02:45,466
中學有一個很有意思的小實驗
78
00:02:45,466 --> 00:02:48,066
那就是觀察草履蟲的應激行為
79
00:02:48,266 --> 00:02:50,066
在另一端滴上肉汁
80
00:02:50,066 --> 00:02:51,666
草履蟲就會跑過去
81
00:02:51,700 --> 00:02:53,100
而加上幾粒鹽
82
00:02:53,100 --> 00:02:54,500
它們就會四散逃跑
83
00:02:55,000 --> 00:02:57,200
正是這種針對環境的變化
84
00:02:57,200 --> 00:02:58,600
趨利避害的運動
85
00:02:58,600 --> 00:02:59,700
讓我們相信
86
00:02:59,766 --> 00:03:01,200
這些水中的小顆粒
87
00:03:01,200 --> 00:03:03,066
是一種有智能的生物
88
00:03:03,066 --> 00:03:05,066
而不是無生命的灰塵
89
00:03:05,600 --> 00:03:07,466
事實上如果你看到有一些草履蟲
90
00:03:07,466 --> 00:03:09,200
沒有了趨利避害的反應
91
00:03:09,200 --> 00:03:12,166
這就說明一個很簡單的道理它們死了
92
00:03:12,266 --> 00:03:13,866
智能隨著生命消失
93
00:03:15,166 --> 00:03:17,966
既然智能說白了就是看情況做事
94
00:03:18,000 --> 00:03:19,766
那麼所謂人工智能
95
00:03:19,766 --> 00:03:21,400
同樣就是搭建起一個
96
00:03:21,400 --> 00:03:23,300
根據不同的環境信息
97
00:03:23,300 --> 00:03:26,166
給出針對性的輸出和回應的系統
98
00:03:26,466 --> 00:03:29,400
這個輸出可以是動作語言
99
00:03:29,400 --> 00:03:31,900
也可以是一種判斷和預測
100
00:03:32,400 --> 00:03:35,866
比如說人臉辨識可以根據不同的人臉
101
00:03:35,933 --> 00:03:38,966
針對性地回饋出不同人的身份資訊
102
00:03:39,333 --> 00:03:40,133
AlphaGo
103
00:03:40,166 --> 00:03:43,200
可以對於各種不同的複雜棋局的情況
104
00:03:43,200 --> 00:03:44,766
給出最佳的下法
105
00:03:44,800 --> 00:03:45,866
爭取勝利
106
00:03:46,100 --> 00:03:47,666
GPT可以根據上文
107
00:03:47,666 --> 00:03:49,800
不同的問題和任務的要求
108
00:03:49,966 --> 00:03:52,800
針對性地跟你說話並解決問題
109
00:03:53,100 --> 00:03:55,200
因此它們都是智能
110
00:03:55,733 --> 00:03:56,533
設想一下
111
00:03:56,566 --> 00:03:57,566
如果人臉識別
112
00:03:57,566 --> 00:04:00,000
把所有的人都認成了張三
113
00:04:00,000 --> 00:04:01,500
AlphaGo在棋盤上到處亂下
114
00:04:01,666 --> 00:04:04,133
GPT的回答牛頭不對馬嘴
115
00:04:04,300 --> 00:04:07,700
那這個AI的全稱應該叫artificial idiot
116
00:04:07,766 --> 00:04:08,700
人工智障
117
00:04:09,866 --> 00:04:10,733
總而言之
118
00:04:10,766 --> 00:04:13,700
智能的本質就是一個不會亂來的黑箱
119
00:04:13,800 --> 00:04:15,866
或者用數學一點的說法
120
00:04:15,966 --> 00:04:18,900
智能就是找到情景信息的輸入
121
00:04:18,900 --> 00:04:21,866
和我們想要的聰明的行為輸出
122
00:04:21,866 --> 00:04:23,900
之間的函數對應關係
123
00:04:24,133 --> 00:04:26,566
這裡給大家聽一段來自美國的
124
00:04:26,566 --> 00:04:29,700
老爺子Thomas Garrity激情四射的演講
125
00:04:29,766 --> 00:04:32,500
相信你會對這個函數有更深的體會
126
00:04:32,733 --> 00:04:33,933
functions 函數
127
00:04:36,633 --> 00:04:38,266
describe 描述了
128
00:04:41,133 --> 00:04:42,433
the wor~~~~ld 世——界——!
129
00:04:44,733 --> 00:04:48,566
everything is described by functions 世間萬物都被函數所描述
130
00:04:48,866 --> 00:04:52,366
the sound of my voice on your eardrum, function 我的聲音傳到你的鼓膜,是函數!
131
00:04:52,433 --> 00:04:53,033
the light
132
00:04:53,033 --> 00:04:55,566
that's kind of hitting your eye balls right now 那些正在照射向你們眼睛的光
133
00:04:55,900 --> 00:04:59,866
function! the entries you put in your random matrices 也是函數!那些你在矩陣中隨機設定的數值
134
00:05:00,133 --> 00:05:02,833
function! it's all~~~ function 還是函數!全——都是函數!
135
00:05:02,933 --> 00:05:04,466
different classes and mathematics 不同的領域different
136
00:05:04,466 --> 00:05:05,900
areas and mathematics study 數學不同方向的研究
137
00:05:05,900 --> 00:05:07,366
different kinds of function 研究不同的函數
138
00:05:07,366 --> 00:05:08,333
high school math studies 高中數學研究
139
00:05:08,333 --> 00:05:10,366
second degree one variable poomials 單變量二次函數
140
00:05:10,366 --> 00:05:11,466
微 積分
141
00:05:11,533 --> 00:05:14,766
functions and it goes on and on 光滑的單變量函數,各種地方都如此
142
00:05:14,866 --> 00:05:18,100
functions describe the world 函數,描述,世界!
143
00:05:20,266 --> 00:05:22,766
你也能更好地理解圖靈測試
144
00:05:22,900 --> 00:05:24,866
因為圖靈測試它就在說
145
00:05:24,900 --> 00:05:28,400
如果人無法區分是在跟人還是AI聊天
146
00:05:28,400 --> 00:05:30,733
那麼這個AI就實現了人的智能
147
00:05:30,800 --> 00:05:32,700
它本質上正是在說
148
00:05:32,766 --> 00:05:36,000
所謂AI本質上就是它所定義的
149
00:05:36,000 --> 00:05:38,933
輸入到輸出的這個黑盒子的函數關係
150
00:05:38,933 --> 00:05:42,133
它跟你回應的話和人沒有任何區別
151
00:05:42,166 --> 00:05:45,066
那麼這就是一個類似於人的智能了
152
00:05:45,400 --> 00:05:46,366
問題來了
153
00:05:46,400 --> 00:05:48,933
該怎麼做出這樣一個聰明的黑箱呢
154
00:05:48,966 --> 00:05:51,566
科學家針對這個問題提出了很多思路
155
00:05:51,900 --> 00:05:52,966
例如有一批人
156
00:05:52,966 --> 00:05:56,200
從數學的形式化推理體系中得到靈感
157
00:05:56,400 --> 00:05:56,866
主張
158
00:05:56,866 --> 00:05:59,933
智能可以用符號的邏輯推理來模擬
159
00:06:00,000 --> 00:06:02,366
這就是符號主義symbolism
160
00:06:02,733 --> 00:06:03,533
舉例
161
00:06:03,566 --> 00:06:04,800
a表示陰天
162
00:06:04,800 --> 00:06:06,966
b表示濕度大於70%
163
00:06:07,100 --> 00:06:08,533
t表示將要下雨
164
00:06:08,666 --> 00:06:10,800
那麼知識是一條邏輯規則
165
00:06:10,966 --> 00:06:12,666
如果a和b是真的
166
00:06:12,666 --> 00:06:14,166
那麼t就是真的
167
00:06:14,566 --> 00:06:15,466
所謂智能
168
00:06:15,466 --> 00:06:17,600
就是看到陰天和濕度很大
169
00:06:17,600 --> 00:06:18,933
明白a和b都對
170
00:06:18,966 --> 00:06:20,666
那麼利用這條規則
171
00:06:20,666 --> 00:06:22,133
推出t是真的
172
00:06:22,133 --> 00:06:24,500
從而預測到可能將要下雨
173
00:06:24,866 --> 00:06:27,100
這些人類的推理和思考
174
00:06:27,166 --> 00:06:30,000
都可以從這些符號和規則當中
175
00:06:30,000 --> 00:06:32,366
像算數一樣計算出來
176
00:06:32,933 --> 00:06:34,933
因此符號主義相信
177
00:06:34,933 --> 00:06:36,500
智能正是一套
178
00:06:36,500 --> 00:06:39,566
像這樣處理符號和規則的計算系統
179
00:06:39,700 --> 00:06:41,666
他把人類的知識和邏輯
180
00:06:41,700 --> 00:06:42,933
用如果a
181
00:06:42,966 --> 00:06:45,566
那麼b這樣的規則存儲下來
182
00:06:45,566 --> 00:06:47,600
然後呢不斷進行符號推演
183
00:06:47,600 --> 00:06:49,766
就可以實現接近人類的智慧
184
00:06:50,366 --> 00:06:52,500
這套思路最成功的典範
185
00:06:52,500 --> 00:06:54,266
就是曾經的專家系統
186
00:06:54,566 --> 00:06:56,800
他諮詢人類的醫學專家
187
00:06:56,800 --> 00:06:59,066
甚麼樣的病可能會有什麼樣的症狀
188
00:06:59,300 --> 00:07:01,700
接著把這些規則全部記錄下來
189
00:07:01,866 --> 00:07:03,533
只要利用這些規則
190
00:07:03,566 --> 00:07:06,300
就可以根據已有的信息給出預測
191
00:07:06,366 --> 00:07:07,966
實現一個智能的黑箱
192
00:07:08,566 --> 00:07:09,366
這套系統
193
00:07:09,366 --> 00:07:12,466
一度在疾病診斷和金融諮詢領域
194
00:07:12,466 --> 00:07:14,100
獲得了很大的成功
195
00:07:14,300 --> 00:07:15,700
但隨著時間推移
196
00:07:15,733 --> 00:07:18,100
它也逐漸暴露出致命的缺陷
197
00:07:18,533 --> 00:07:20,066
首先很多時候
198
00:07:20,066 --> 00:07:22,600
現實世界沒有那麼清晰的規則
199
00:07:22,933 --> 00:07:24,400
即使詢問人類專家
200
00:07:24,400 --> 00:07:25,366
出現某個症狀
201
00:07:25,366 --> 00:07:26,666
是不是得了某個病
202
00:07:26,733 --> 00:07:29,000
或者股票走勢長成這個樣子
203
00:07:29,000 --> 00:07:30,500
應該是買還是賣
204
00:07:30,600 --> 00:07:33,666
他們給出的回答往往都並不一致
205
00:07:33,900 --> 00:07:36,000
那你的系統只能選擇一個
206
00:07:36,200 --> 00:07:37,666
到底該聽誰的呢
207
00:07:38,533 --> 00:07:39,400
更要命的是
208
00:07:39,533 --> 00:07:42,666
這套系統完全是在複製人類經驗
209
00:07:42,866 --> 00:07:46,100
所以他的能力上限就是專家的水平
210
00:07:46,133 --> 00:07:48,066
無法做到比人更好
211
00:07:48,133 --> 00:07:51,500
而且從你設計完成這套系統開始
212
00:07:51,533 --> 00:07:53,933
他就永遠是靜止不變的水平
213
00:07:54,066 --> 00:07:55,466
很難像人一樣
214
00:07:55,533 --> 00:07:57,700
隨著經驗和時間的增長
215
00:07:57,866 --> 00:07:59,600
水平不斷繼續提升
216
00:08:00,300 --> 00:08:03,400
正因此從上世紀70年代開始
217
00:08:03,400 --> 00:08:06,400
另一個人工智能流派開始發揚光大
218
00:08:06,666 --> 00:08:09,533
他不追求一開始就有一個
219
00:08:09,533 --> 00:08:10,700
完美的黑箱
220
00:08:10,733 --> 00:08:13,300
但允許這個黑箱不斷的變化
221
00:08:13,333 --> 00:08:15,500
透過不斷的引導和學習
222
00:08:15,533 --> 00:08:18,566
讓他在某一個任務上表現的越來越好
223
00:08:18,566 --> 00:08:19,366
哎沒錯
224
00:08:19,400 --> 00:08:21,333
也是一種成長型的心態
225
00:08:21,800 --> 00:08:22,700
這種思路啊
226
00:08:22,700 --> 00:08:23,566
就像訓狗
227
00:08:23,800 --> 00:08:25,333
你發出坐的指令
228
00:08:25,466 --> 00:08:26,800
如果他坐下來呢
229
00:08:26,800 --> 00:08:29,366
你就獎勵他狗糧或者摸摸狗頭
230
00:08:29,533 --> 00:08:31,866
如果他沒聽懂或瞪著眼睛
231
00:08:31,866 --> 00:08:33,166
你就給他一逼鬥
232
00:08:33,600 --> 00:08:34,500
久而久之
233
00:08:34,700 --> 00:08:37,166
狗這個黑箱就會越來越明白
234
00:08:37,166 --> 00:08:39,200
你發出坐這個指令
235
00:08:39,333 --> 00:08:41,900
和他需要坐下來的這個行為
236
00:08:41,900 --> 00:08:42,900
之間的關係
237
00:08:43,000 --> 00:08:44,600
就像條件反射一樣
238
00:08:44,866 --> 00:08:48,900
之後只要聽到坐這個命令的輸入場景
239
00:08:49,000 --> 00:08:51,933
他就會給你坐下來這個動作
240
00:08:52,266 --> 00:08:54,933
於是一隻會聽指令的聰明小狗
241
00:08:54,933 --> 00:08:56,300
就訓練完成了
242
00:08:56,866 --> 00:08:59,100
這個流派的名字也很生動
243
00:08:59,100 --> 00:09:01,000
就叫做機器學習
244
00:09:01,366 --> 00:09:02,166
顧名思義
245
00:09:02,266 --> 00:09:06,100
就是把在學習的對象從狗變成了機器
246
00:09:06,333 --> 00:09:09,766
通過給機器以獎勵或者懲罰的方式
247
00:09:09,766 --> 00:09:11,600
讓機器自主調整
248
00:09:11,600 --> 00:09:12,700
不斷學習
249
00:09:12,766 --> 00:09:15,600
從而學會解決某一種任務的智能
250
00:09:15,933 --> 00:09:16,766
這個任務
251
00:09:16,766 --> 00:09:19,133
可能是識別圖片裡的數字和人臉
252
00:09:19,133 --> 00:09:22,333
也可能是下圍棋或者是與人對話
253
00:09:22,333 --> 00:09:23,266
等等等等
254
00:09:24,066 --> 00:09:26,066
機器學習的強大之處在於
255
00:09:26,133 --> 00:09:29,000
它不需要任何專家的專業知識
256
00:09:29,000 --> 00:09:31,766
來人為搭建黑箱內部的結構
257
00:09:31,900 --> 00:09:33,666
它只需要兩樣東西
258
00:09:33,800 --> 00:09:36,566
一個強大且有學習能力的黑箱
259
00:09:36,566 --> 00:09:38,133
以及足夠多的數據
260
00:09:38,600 --> 00:09:39,400
舉個例子
261
00:09:39,400 --> 00:09:39,866
假設
262
00:09:39,866 --> 00:09:43,100
你想要一個能夠識別數字的智能黑箱
263
00:09:43,100 --> 00:09:43,466
那麼
264
00:09:43,466 --> 00:09:46,066
只需要準備一個具有學習能力的機器
265
00:09:46,066 --> 00:09:48,366
然後收集很多數字的圖片人工
266
00:09:48,800 --> 00:09:52,100
標註出每張圖片裡的數字是什麼
267
00:09:52,133 --> 00:09:54,666
接下來你只需要像訓狗一樣
268
00:09:54,666 --> 00:09:57,566
把一張張圖片展示在這個機器面前
269
00:09:57,566 --> 00:09:59,766
讓他預測裡面的數字到底是
270
00:09:59,766 --> 00:10:01,566
什麼如果他預測對了
271
00:10:01,566 --> 00:10:02,766
你就給他獎勵
272
00:10:02,800 --> 00:10:04,533
錯了呢你就給他懲罰
273
00:10:04,800 --> 00:10:07,400
讓這個機器不斷的自我調整
274
00:10:07,733 --> 00:10:10,533
當他見過的圖片越來越多之後
275
00:10:10,533 --> 00:10:12,733
就能夠神奇的做到
276
00:10:12,733 --> 00:10:16,066
正確識別這個圖片裡的數字是什麼了
277
00:10:16,866 --> 00:10:19,466
相信你現在心裡肯定有一個疑問哎
278
00:10:19,466 --> 00:10:21,166
哪來的黑箱這麼神奇
279
00:10:21,166 --> 00:10:23,666
能夠像狗和人一樣越學越機靈
280
00:10:24,000 --> 00:10:27,200
而且給狗獎勵是餵狗糧摸摸頭
281
00:10:27,300 --> 00:10:30,700
給機器獎勵和懲罰又是怎麼一回事呢
282
00:10:30,733 --> 00:10:32,866
難不成是多給點電嗎
283
00:10:33,100 --> 00:10:33,600
而且
284
00:10:33,600 --> 00:10:36,533
狗的條件反射和學習過程那麼複雜
285
00:10:36,700 --> 00:10:39,100
人搭建起來的機器
286
00:10:39,133 --> 00:10:41,800
又是怎麼自我調整和學習的呢
287
00:10:42,300 --> 00:10:43,566
哎問的非常好
288
00:10:43,700 --> 00:10:44,733
這三個問題啊
289
00:10:44,733 --> 00:10:47,600
其實分別對應於機器學習的模型
290
00:10:47,600 --> 00:10:50,466
結構損失函數和訓練過程
291
00:10:50,766 --> 00:10:53,933
接下來的影片就會詳細解答這些問題
292
00:10:54,533 --> 00:10:56,366
讓我們先解決第一個問題
293
00:10:56,366 --> 00:10:57,533
怎麼搭建起一個
294
00:10:57,533 --> 00:10:59,766
有學習能力的黑箱機器呢
295
00:11:00,100 --> 00:11:03,133
有沒有一種萬能的超級強大的黑盒
296
00:11:03,166 --> 00:11:04,966
無論什麼樣的對應關係
297
00:11:04,966 --> 00:11:07,100
它都能表示和學會呢
298
00:11:07,466 --> 00:11:08,000
這裡呢
299
00:11:08,000 --> 00:11:11,300
就值得一提另一派實現人工智能流派
300
00:11:11,333 --> 00:11:12,333
聯結主義
301
00:11:12,766 --> 00:11:13,500
他們認為
302
00:11:13,500 --> 00:11:13,966
大自然
303
00:11:13,966 --> 00:11:16,666
已經給了實現智能的標準答案
304
00:11:16,800 --> 00:11:18,766
那就是人類精妙的大腦
305
00:11:19,166 --> 00:11:21,166
只需要通過仿生的方式
306
00:11:21,166 --> 00:11:23,800
模擬單個神經元的複雜功能
307
00:11:23,800 --> 00:11:26,500
以及神經元之間複雜的連接
308
00:11:26,900 --> 00:11:28,000
那麼我們只需要
309
00:11:28,000 --> 00:11:30,566
像運行一台精密的鐘錶一樣
310
00:11:30,566 --> 00:11:33,100
運行這個人工搭建的神經網絡
311
00:11:33,366 --> 00:11:36,166
人類就可以實現不可思議的智慧
312
00:11:36,500 --> 00:11:40,733
這一派思想被稱作聯結主義connectionism
313
00:11:41,666 --> 00:11:42,933
為了理解聯結主義
314
00:11:42,933 --> 00:11:45,300
我們先考慮一些最簡單的智能
315
00:11:45,333 --> 00:11:47,200
比如這裡有一個蘋果
316
00:11:47,266 --> 00:11:49,800
那為什麼你會覺得它是一個蘋果呢
317
00:11:49,933 --> 00:11:50,966
你可能會說
318
00:11:50,966 --> 00:11:52,766
因為它直徑大約10厘米
319
00:11:52,766 --> 00:11:54,266
外表皮是紅色的
320
00:11:54,266 --> 00:11:55,133
是個球形
321
00:11:55,133 --> 00:11:56,133
氣味香甜
322
00:11:56,700 --> 00:11:58,666
沒錯我們對於很多概念
323
00:11:58,666 --> 00:12:00,066
比如蘋果的理解
324
00:12:00,066 --> 00:12:03,466
是依賴於其他的概念屬性組合而來的
325
00:12:03,600 --> 00:12:05,800
在每個不同的概念屬性上
326
00:12:05,800 --> 00:12:08,333
不同的水果會有各自的特徵
327
00:12:08,500 --> 00:12:09,800
例如大小方面
328
00:12:09,900 --> 00:12:10,966
西瓜是大的
329
00:12:10,966 --> 00:12:12,600
而其他的水果是小的
330
00:12:12,666 --> 00:12:14,800
所以在尺寸大這個特徵上
331
00:12:14,900 --> 00:12:15,766
西瓜符合
332
00:12:15,766 --> 00:12:17,400
而其他的水果不符合
333
00:12:17,766 --> 00:12:18,866
在計算機的世界裡
334
00:12:18,866 --> 00:12:20,966
我們用1來表示符合
335
00:12:20,966 --> 00:12:22,200
0表示不符合
336
00:12:22,566 --> 00:12:25,500
這樣我們就可以列出各種水果
337
00:12:25,500 --> 00:12:29,166
與不同屬性之間的一張關係對應表
338
00:12:29,733 --> 00:12:31,266
當每個水果的特徵
339
00:12:31,266 --> 00:12:33,533
都和蘋果的屬性吻合時
340
00:12:33,533 --> 00:12:36,300
我們就傾向於判斷這是蘋果
341
00:12:36,666 --> 00:12:39,166
如此我們就擁有了一種簡單的
342
00:12:39,166 --> 00:12:40,700
識別水果的智能
343
00:12:41,333 --> 00:12:41,933
因此
344
00:12:41,933 --> 00:12:45,166
有一種最簡單的搭建黑盒的方式
345
00:12:45,300 --> 00:12:47,366
比如說我們想要識別蘋果
346
00:12:47,366 --> 00:12:49,733
那就將一個水果的所有特徵
347
00:12:49,733 --> 00:12:52,966
比如說大小顏色氣味什麼的作為輸入
348
00:12:53,200 --> 00:12:55,700
然後分別考慮它的每個特徵
349
00:12:55,733 --> 00:12:57,466
是否像蘋果
350
00:12:57,700 --> 00:12:58,500
具體來說
351
00:12:58,533 --> 00:12:59,966
就是乘一個係數
352
00:13:00,200 --> 00:13:02,066
比如說尺寸不大
353
00:13:02,266 --> 00:13:03,266
顏色是紅色
354
00:13:03,266 --> 00:13:04,000
味道很甜
355
00:13:04,000 --> 00:13:06,900
這些都表明這個水果符合蘋果的特徵
356
00:13:06,900 --> 00:13:09,000
因此他們對於是蘋果這個判斷
357
00:13:09,000 --> 00:13:10,733
起到正向的促進作用
358
00:13:10,733 --> 00:13:12,666
我們會把它乘以一個正數
359
00:13:12,800 --> 00:13:14,066
而尺寸很大
360
00:13:14,100 --> 00:13:14,866
吃起來酸
361
00:13:14,866 --> 00:13:17,466
這些特徵都表明不太可能是蘋果
362
00:13:17,566 --> 00:13:19,466
所以我們把它乘以負的係數
363
00:13:19,866 --> 00:13:22,066
最後我們只需要將這些特徵
364
00:13:22,066 --> 00:13:24,400
各自乘以它們對應的係數
365
00:13:24,400 --> 00:13:25,766
然後加在一起
366
00:13:25,800 --> 00:13:27,933
就可以得到一個蘋果得分
367
00:13:28,100 --> 00:13:30,133
這個得分越高越像蘋果
368
00:13:30,133 --> 00:13:31,533
越低則越不像
369
00:13:31,766 --> 00:13:34,766
所以
我們就可以再設置一個得分的閾值b
370
00:13:34,866 --> 00:13:36,733
如果最後的得分高於b
371
00:13:36,733 --> 00:13:38,466
那麼這台機器就激活
372
00:13:38,466 --> 00:13:39,533
否則不激活
373
00:13:39,900 --> 00:13:41,566
此時整個這台機器
374
00:13:41,566 --> 00:13:43,733
就變成了一個蘋果識別機
375
00:13:43,966 --> 00:13:46,566
只有你把蘋果拿到它面前的時候
376
00:13:46,566 --> 00:13:47,400
它會激活
377
00:13:47,400 --> 00:13:48,700
亮起右邊的燈泡
378
00:13:48,800 --> 00:13:50,566
而只要你放在前面的水果
379
00:13:50,566 --> 00:13:52,266
不滿足蘋果的特徵
380
00:13:52,300 --> 00:13:53,566
它就不會激活
381
00:13:53,900 --> 00:13:55,266
所以根據我們的定義
382
00:13:55,266 --> 00:13:55,900
整個黑箱
383
00:13:55,900 --> 00:13:58,933
此時就具備了識別蘋果的智能
384
00:13:59,066 --> 00:14:01,266
這個黑箱機器的厲害之處在於
385
00:14:01,333 --> 00:14:03,600
你不僅可以用它來識別蘋果
386
00:14:03,600 --> 00:14:05,666
還可以用來辨識其他的水果
387
00:14:05,900 --> 00:14:08,600
只需要透過調整這些連結的係數
388
00:14:08,600 --> 00:14:10,533
你就可以表示不同的概念
389
00:14:10,966 --> 00:14:13,566
比如說你可以讓他在水果又大
390
00:14:13,566 --> 00:14:15,700
又綠又甜的時候激活
391
00:14:15,800 --> 00:14:18,400
那麼此時這台機器的用途
392
00:14:18,400 --> 00:14:19,900
就是識別出西瓜
393
00:14:20,533 --> 00:14:23,533
或者在又小又紅又酸的時候激活
394
00:14:23,533 --> 00:14:26,133
那麼他就可以特別的篩選出山楂
395
00:14:27,000 --> 00:14:29,566
這裡每一個特徵到輸出之間
396
00:14:29,566 --> 00:14:30,600
連接的係數
397
00:14:30,600 --> 00:14:32,300
就像一個機器的旋鈕
398
00:14:32,566 --> 00:14:34,700
你只需要根據自己的需求
399
00:14:34,700 --> 00:14:36,200
設定這些旋鈕的值
400
00:14:36,300 --> 00:14:37,666
就可以讓整台機器
401
00:14:37,666 --> 00:14:40,500
非常針對性的指對某種水果激活
402
00:14:40,733 --> 00:14:42,866
而這種從輸入數據中
403
00:14:42,933 --> 00:14:45,966
識別不同水果特徵的模式
404
00:14:45,966 --> 00:14:48,733
理解概念的過程就叫做模式識別
405
00:14:49,400 --> 00:14:50,266
而這個玩意兒
406
00:14:50,266 --> 00:14:51,866
就是人類在1956年
407
00:14:51,866 --> 00:14:54,100
最早提出的一種模式識別的算法
408
00:14:54,100 --> 00:14:55,400
模型:感知機
409
00:14:55,933 --> 00:14:57,400
哎有人可能會說了
410
00:14:57,400 --> 00:14:59,066
你這個取各種條件
411
00:14:59,066 --> 00:15:00,766
合在一起判斷的過程
412
00:15:00,766 --> 00:15:02,466
看起來和前面的專家系統
413
00:15:02,466 --> 00:15:04,066
好像也沒啥區別呀
414
00:15:04,333 --> 00:15:05,733
哎你說的很
415
00:15:06,000 --> 00:15:08,333
對這 是一個很多人都不知道的冷知識
416
00:15:08,500 --> 00:15:09,600
大家通常以為
417
00:15:09,600 --> 00:15:11,333
神經網路代表的聯結主義
418
00:15:11,333 --> 00:15:14,100
從一開始就和符號主義水火不容
419
00:15:14,100 --> 00:15:15,133
分道揚鑣
420
00:15:15,266 --> 00:15:18,800
但其實感知機這種最早期的神經網路
421
00:15:18,800 --> 00:15:19,500
它的設計
422
00:15:19,500 --> 00:15:20,533
很大程度上
423
00:15:20,533 --> 00:15:23,333
借鑒甚至是脫胎於邏輯推理
424
00:15:23,600 --> 00:15:27,100
其思路同樣是組合不同的特徵條件
425
00:15:27,100 --> 00:15:28,133
來進行推理
426
00:15:28,166 --> 00:15:29,733
這裡的每個神經元
427
00:15:29,766 --> 00:15:31,133
也就像剛才我們說的
428
00:15:31,133 --> 00:15:33,000
符號邏輯當中的一個
429
00:15:33,000 --> 00:15:34,600
一個命題的字母一樣
430
00:15:35,100 --> 00:15:35,700
只不過
431
00:15:35,700 --> 00:15:38,700
他是用數值計算的方式來模擬邏輯的
432
00:15:38,700 --> 00:15:40,000
而數值計算本身
433
00:15:40,000 --> 00:15:43,466
不局限於有限且明確的符號推理
434
00:15:43,533 --> 00:15:45,400
因而在更廣泛的領域
435
00:15:45,400 --> 00:15:49,133
比如說控制環境感知圖像識別等領域
436
00:15:49,133 --> 00:15:50,900
具有更強大的潛力
437
00:15:51,000 --> 00:15:52,766
這個我們在後面就會看到
438
00:15:53,600 --> 00:15:54,333
巧合的是
439
00:15:54,333 --> 00:15:57,333
這種設計同樣和神經科學不謀而合
440
00:15:57,566 --> 00:15:59,100
中學的時候我們學過
441
00:15:59,266 --> 00:16:01,900
神經元通過電信號傳遞信息
442
00:16:01,933 --> 00:16:04,600
其中樹突接收不同神經元的電信號
443
00:16:04,600 --> 00:16:06,533
而軸突則會將自己的訊號
444
00:16:06,533 --> 00:16:08,300
傳遞給其他的神經元
445
00:16:08,700 --> 00:16:09,666
而感知機啊
446
00:16:09,666 --> 00:16:11,400
它也恰似一個神經元
447
00:16:11,533 --> 00:16:13,733
你看呢那些傳入的數字
448
00:16:13,733 --> 00:16:15,900
分別表示它接收到的各種訊號
449
00:16:16,066 --> 00:16:17,800
它們可能會激活
450
00:16:17,800 --> 00:16:20,266
或抑制這個神經元的活動
451
00:16:20,300 --> 00:16:21,400
而這種影響
452
00:16:21,400 --> 00:16:22,166
就體現在
453
00:16:22,166 --> 00:16:25,600
每一條連邊參數w的正負和大小上
454
00:16:26,000 --> 00:16:28,700
神經元直接疊加所有接收的影響
455
00:16:28,700 --> 00:16:30,533
而如果疊加的刺激足夠大
456
00:16:30,533 --> 00:16:31,500
它就會激活
457
00:16:31,500 --> 00:16:32,733
進一步往後傳遞
458
00:16:33,200 --> 00:16:34,000
這一切
459
00:16:34,000 --> 00:16:36,666
都和生物神經元的活動不謀而合
460
00:16:37,100 --> 00:16:39,133
事實上這個數學模型的提出啊
461
00:16:39,133 --> 00:16:40,600
比人工智慧還早
462
00:16:40,733 --> 00:16:42,933
早 在1943年的二戰期間
463
00:16:43,100 --> 00:16:47,066
Pitts和Mcculloch在生物物理學通報上
464
00:16:47,166 --> 00:16:48,300
共同發表了
465
00:16:48,300 --> 00:16:51,466
神經活動中內在思想的邏輯演算
466
00:16:51,466 --> 00:16:53,966
提出了這套神經元的數學模型
467
00:16:54,500 --> 00:16:55,800
你注意看這套名字
468
00:16:56,133 --> 00:16:58,966
神經活動中內在的邏輯演算
469
00:16:59,133 --> 00:17:00,333
這更顯示
470
00:17:00,333 --> 00:17:03,533
聯結主義和符號主義其實是同源的
471
00:17:03,866 --> 00:17:06,300
1957年康乃爾大學的羅森布拉特
472
00:17:06,300 --> 00:17:06,666
造出了
473
00:17:06,666 --> 00:17:09,466
人類第一台有實際應用價值的:感知機
474
00:17:09,600 --> 00:17:12,866
這台感知機將圖片的像素作為輸入
475
00:17:12,866 --> 00:17:14,600
透過演算法調整參數
476
00:17:14,600 --> 00:17:15,666
不斷學習
477
00:17:15,800 --> 00:17:18,800
最終能夠做到判斷出一張圖片裡
478
00:17:18,800 --> 00:17:20,566
是男人還是女人
479
00:17:20,700 --> 00:17:23,366
或者是左箭頭還是右箭頭
480
00:17:23,366 --> 00:17:25,066
一時間轟動世界
481
00:17:25,666 --> 00:17:28,400
雖然在今天看來這可能沒什麼
482
00:17:28,466 --> 00:17:30,466
但讓我換一個角度跟你解釋
483
00:17:30,466 --> 00:17:32,133
你就會知道這有多了不起
484
00:17:32,566 --> 00:17:35,533
計算機和人是兩種非常不同的東西
485
00:17:35,900 --> 00:17:38,000
對於人來說很困難的問題
486
00:17:38,000 --> 00:17:40,366
比如說計算兩個十位數的乘法
487
00:17:40,466 --> 00:17:42,666
對於計算機來說卻很簡單
488
00:17:42,966 --> 00:17:45,400
但對人來說很簡單的事情
489
00:17:45,400 --> 00:17:47,800
對於計算機來說卻非常困難
490
00:17:48,000 --> 00:17:49,966
比如說理解圖片的內容
491
00:17:50,300 --> 00:17:51,933
因為在計算機看來
492
00:17:51,933 --> 00:17:54,800
圖片本質上是一堆像素的數值
493
00:17:54,966 --> 00:17:57,100
所以識別圖片中的內容
494
00:17:57,100 --> 00:17:58,333
在數學本質上
495
00:17:58,333 --> 00:18:00,866
就是給你一大塊數字組成的矩陣
496
00:18:00,866 --> 00:18:01,866
然後問你啊
497
00:18:01,866 --> 00:18:03,566
這裡面畫的到底是一個什麼
498
00:18:03,566 --> 00:18:04,333
或問你
499
00:18:04,333 --> 00:18:06,533
這裡面到底是個男人還是女人
500
00:18:07,000 --> 00:18:08,866
人的長相千姿百態
501
00:18:09,000 --> 00:18:12,200
各種五官光影角度的細微變化
502
00:18:12,200 --> 00:18:14,533
都會呈現出不同的圖片
503
00:18:14,600 --> 00:18:18,000
導致像素的具體數值出現劇烈的變化
504
00:18:18,400 --> 00:18:20,700
而我們要透過純粹的計算
505
00:18:20,966 --> 00:18:23,333
算出來真實照片裡的人
506
00:18:23,333 --> 00:18:24,800
是男性還是女性
507
00:18:25,066 --> 00:18:28,366
現在你還覺得這整個數學問題
508
00:18:28,366 --> 00:18:28,933
也就是說
509
00:18:28,933 --> 00:18:32,300
從圖片中看出是什麼內容很容易嗎
510
00:18:32,500 --> 00:18:33,900
人類的視覺和大腦
511
00:18:33,933 --> 00:18:35,400
是不是很不可思議呢
512
00:18:35,866 --> 00:18:38,333
而這個領域就叫做電腦視覺
513
00:18:39,566 --> 00:18:41,800
正因此在發明感知機之後啊
514
00:18:41,800 --> 00:18:44,733
時年30歲的羅森布拉特意氣風發
515
00:18:44,800 --> 00:18:46,933
迫不及待的召開新聞發布會
516
00:18:46,966 --> 00:18:49,800
暢談自己研究成果的美好未來
517
00:18:49,800 --> 00:18:50,500
吸引了眾
518
00:18:50,500 --> 00:18:52,133
多媒體 的極大關注
519
00:18:52,400 --> 00:18:55,066
比如說大名鼎鼎的紐約時報記者
520
00:18:55,066 --> 00:18:57,466
對感知機的先進性贊不絕口
521
00:18:57,733 --> 00:18:58,466
報道說
522
00:18:58,466 --> 00:19:01,800
這是一個能夠行走擁有視覺能夠寫作
523
00:19:01,800 --> 00:19:02,866
能自我複製
524
00:19:02,866 --> 00:19:06,600
且有自我意識的電子計算機的雛形
525
00:19:06,866 --> 00:19:08,900
他把它稱為電子大腦
526
00:19:08,966 --> 00:19:09,900
電腦這個名字
527
00:19:09,900 --> 00:19:11,733
最早也是從這個時候來的
528
00:19:12,100 --> 00:19:14,600
文章當時還非常樂觀的估計
529
00:19:14,733 --> 00:19:16,333
再花上10萬美元
530
00:19:16,400 --> 00:19:19,400
一年之後上述構想就可以實現
531
00:19:19,533 --> 00:19:22,166
那時感知機將能夠識別出人
532
00:19:22,166 --> 00:19:23,733
並能叫出它們的名字
533
00:19:23,733 --> 00:19:25,533
而且還能把人們演講的內容
534
00:19:25,533 --> 00:19:28,500
及時的翻譯成另一種語言記錄
535
00:19:29,066 --> 00:19:30,866
但經歷過現實的我們知道
536
00:19:30,866 --> 00:19:33,933
這件事直到最近幾年才算真正實現
537
00:19:34,700 --> 00:19:36,266
所以啊真心也好
538
00:19:36,266 --> 00:19:37,700
忽悠投資人也罷
539
00:19:37,933 --> 00:19:40,466
總之人類對於自己不了解的東西
540
00:19:40,466 --> 00:19:41,966
就是很容易浪漫
541
00:19:42,133 --> 00:19:44,500
也很容易對於未來過分樂觀
542
00:19:44,766 --> 00:19:45,566
歷史上
543
00:19:45,600 --> 00:19:48,966
每當人工智慧取得一點點微小的進步
544
00:19:49,066 --> 00:19:52,333
人類就會開始賦予它無限能力的想像
545
00:19:52,466 --> 00:19:54,566
暢想與AI大戰的場景
546
00:19:54,733 --> 00:19:55,700
從來如此
547
00:19:56,733 --> 00:19:58,000
回到一開始的問題
548
00:19:58,133 --> 00:20:00,200
那究竟該怎麼搭建出一個
549
00:20:00,200 --> 00:20:03,733
有學習和進化能力的聰明黑盒子呢
550
00:20:03,933 --> 00:20:06,100
感知機就是一個簡單的例子
551
00:20:06,266 --> 00:20:07,133
專業的說法
552
00:20:07,133 --> 00:20:07,766
這些東西啊
553
00:20:07,766 --> 00:20:08,866
都叫模型
554
00:20:09,466 --> 00:20:12,700
模型本身確定了它輸出的函數形式
555
00:20:12,800 --> 00:20:13,766
比如說這裡
556
00:20:13,766 --> 00:20:16,900
就是先用wi加權組合所有的輸入
557
00:20:16,933 --> 00:20:18,366
然後減去閾值b
558
00:20:18,366 --> 00:20:20,966
再激活就是它整個模型的輸出
559
00:20:20,966 --> 00:20:22,600
這有一套函數形式
560
00:20:22,966 --> 00:20:24,166
但與此同時
561
00:20:24,166 --> 00:20:26,566
它又沒有完全確定整個函數
562
00:20:26,700 --> 00:20:27,566
依然有一系列
563
00:20:27,566 --> 00:20:29,666
你需要調節和設定的數值
564
00:20:29,666 --> 00:20:31,600
比如說這裡的每個wi和b
565
00:20:31,933 --> 00:20:33,466
它們呢叫做參數
566
00:20:33,933 --> 00:20:34,466
我們只需
567
00:20:34,466 --> 00:20:37,666
要 在設計模型的時候讓它足夠強大
568
00:20:37,900 --> 00:20:40,100
任何你想要它實現的功能
569
00:20:40,133 --> 00:20:43,333
本質上都可以透過設定模套參數實現
570
00:20:43,400 --> 00:20:45,333
那麼我們只需要讓這個模型
571
00:20:45,333 --> 00:20:47,266
不斷調整自己的參數
572
00:20:47,300 --> 00:20:48,900
不斷向著越來越有用
573
00:20:48,900 --> 00:20:51,800
符合我們需要的這種輸出的模式變化
574
00:20:51,866 --> 00:20:54,733
可以讓它最終實現強大的智能
575
00:20:55,500 --> 00:20:57,300
這就是聯結主義的信念
576
00:20:58,266 --> 00:21:00,866
這套故事在一開始提出的時候
577
00:21:00,866 --> 00:21:01,800
野心勃勃
578
00:21:01,800 --> 00:21:04,466
而且實現了感知機這樣了不起的成就
579
00:21:04,600 --> 00:21:07,300
但聯結主義一度陷入寒冬
580
00:21:07,400 --> 00:21:10,066
甚至被整個世界斥為騙子
581
00:21:10,400 --> 00:21:11,600
在最一開始的時候
582
00:21:11,600 --> 00:21:13,933
就有很多學者反對聯結主義
583
00:21:14,133 --> 00:21:14,666
他們覺得
584
00:21:14,666 --> 00:21:17,766
這只是機械的模擬了生物的構造
585
00:21:17,766 --> 00:21:20,533
而且神經元建模的也太簡單了
586
00:21:20,766 --> 00:21:22,300
而且他們覺得
587
00:21:22,300 --> 00:21:25,100
聯結主義期待在一通亂聯當中
588
00:21:25,100 --> 00:21:26,200
發生魔法
589
00:21:26,566 --> 00:21:27,666
1969年
590
00:21:27,866 --> 00:21:30,900
馬文閔斯基寫了一本叫做感知機的書
591
00:21:31,333 --> 00:21:34,133
正如給你伸大拇指的人不一定是誇你
592
00:21:34,133 --> 00:21:35,733
也可能是想拿砲打你
593
00:21:35,733 --> 00:21:37,966
他這本書可不是要推廣感知機
594
00:21:37,966 --> 00:21:39,666
而是要給感知機下死刑
595
00:21:39,666 --> 00:21:41,566
把棺材板上的釘子釘死
596
00:21:42,000 --> 00:21:44,400
閔斯基在書中指出了這樣一個事實
597
00:21:44,533 --> 00:21:47,100
有一個邏輯電路裡非常基本的操作
598
00:21:47,100 --> 00:21:49,200
叫做異或XOR
599
00:21:49,366 --> 00:21:50,266
簡單來說
600
00:21:50,266 --> 00:21:52,933
就是當輸入的兩個特徵一樣的時候
601
00:21:52,933 --> 00:21:53,800
輸出是0
602
00:21:53,866 --> 00:21:55,666
而輸入的不一樣的時候
603
00:21:55,666 --> 00:21:56,500
輸出是1
604
00:21:56,900 --> 00:21:59,800
就是這麼一個非常簡單的對應關係
605
00:21:59,800 --> 00:22:01,866
感知機卻無法完成
606
00:22:02,566 --> 00:22:03,733
為什麼會這樣呢
607
00:22:03,766 --> 00:22:05,933
我們仔細看感知機的函數形式
608
00:22:05,933 --> 00:22:06,733
就會發現
609
00:22:06,766 --> 00:22:07,533
它本質上
610
00:22:07,533 --> 00:22:11,733
是在計算W1x加w2y減b的符號
611
00:22:12,133 --> 00:22:14,600
假如我們把所有的這樣的x,y輸入
612
00:22:14,600 --> 00:22:16,600
畫在二維平面的座標系上
613
00:22:16,700 --> 00:22:19,100
那麼能夠讓感知機激
614
00:22:19,100 --> 00:22:23,900
活 的所有輸入滿足w1x加w2y減b大於0
615
00:22:24,333 --> 00:22:26,533
中學的小伙伴可能會很熟悉
616
00:22:26,700 --> 00:22:27,366
這其實啊
617
00:22:27,366 --> 00:22:28,866
就是一個線性規劃
618
00:22:29,066 --> 00:22:30,900
所以說能夠激活的
619
00:22:30,900 --> 00:22:33,100
滿足條件的輸入和不激活的
620
00:22:33,100 --> 00:22:35,566
分界線永遠是一條直線
621
00:22:35,966 --> 00:22:37,500
然而對於異或問題
622
00:22:37,500 --> 00:22:38,400
你會發現
623
00:22:38,500 --> 00:22:40,133
需要啟動的這兩個點
624
00:22:40,133 --> 00:22:41,933
和不啟動的這兩點
625
00:22:41,933 --> 00:22:43,333
是這樣分佈的
626
00:22:43,333 --> 00:22:45,533
你永遠沒法用一條直線
627
00:22:45,566 --> 00:22:48,733
將這兩種點恰好分在直線的兩邊
628
00:22:48,966 --> 00:22:51,500
所以呢就不存在一台感知機
629
00:22:51,500 --> 00:22:54,800
能夠直接實現這個簡單的異或運算
630
00:22:55,766 --> 00:22:58,466
閔斯基在這本書裡直接毫不客氣地說
631
00:22:58,733 --> 00:23:01,600
羅森布拉特的論文沒有什麼科學價值
632
00:23:01,800 --> 00:23:04,133
他自己在同年獲得圖靈獎
633
00:23:04,266 --> 00:23:04,866
這本書
634
00:23:04,866 --> 00:23:08,066
也因此將整個聯結主義打入冷宮
635
00:23:08,333 --> 00:23:10,066
在之後的二三十年間
636
00:23:10,266 --> 00:23:11,866
神經網絡這個名字
637
00:23:11,866 --> 00:23:13,766
彷彿就是騙子的代名詞
638
00:23:13,866 --> 00:23:16,333
是連疑惑這個操作都做不好的
639
00:23:16,333 --> 00:23:17,633
無用的玩物
640
00:23:18,000 --> 00:23:21,066
在當時圖靈獎得主的帶頭唱衰下
641
00:23:21,266 --> 00:23:23,933
神經網絡一度陷入了極度的寒冬
642
00:23:23,933 --> 00:23:26,300
所有人都認為他是垃圾和騙子
643
00:23:26,333 --> 00:23:28,133
基金資助大為減少
644
00:23:28,166 --> 00:23:29,866
研究者紛紛轉行
645
00:23:30,100 --> 00:23:33,700
AI研究也因此陷入長達數十年的寒冬
646
00:23:34,166 --> 00:23:36,800
你看人類又是這麼容易悲觀
647
00:23:36,900 --> 00:23:39,400
一個小小的反例就自暴自棄
648
00:23:39,500 --> 00:23:42,166
放棄了充滿潛力的研究方向
649
00:23:42,733 --> 00:23:44,266
但與此同時
650
00:23:44,400 --> 00:23:46,900
依然有一批研究者在堅持
651
00:23:46,900 --> 00:23:49,500
他們最後守得雲開見月明
652
00:23:49,566 --> 00:23:51,866
成為了後來深度學習的奠基人
653
00:23:51,866 --> 00:23:53,200
並獲得圖靈獎
654
00:23:53,566 --> 00:23:54,566
我們可以聽聽
655
00:23:54,566 --> 00:23:57,033
圖靈獎和諾貝爾獎雙料得主辛頓
656
00:23:57,033 --> 00:23:58,800
當年在UCD大學
657
00:23:58,800 --> 00:24:00,833
接受採訪的時候的一段表達
658
00:24:02,366 --> 00:24:03,966
looking back at your career 回望你的整個學術生涯
659
00:24:05,366 --> 00:24:09,066
what aspects of it are you most proud of 你對其中的哪個方面最為自豪?
660
00:24:09,066 --> 00:24:12,666
i'm not necessarily just thinking about your discoveries 我並不僅僅在說您的科學發現
661
00:24:12,866 --> 00:24:15,066
but maybe other aspects of your career as well 而包括您更大的整個生涯
662
00:24:15,066 --> 00:24:17,633
the people who worked with the teams that you've built 那些與你合作的人,你建立的團隊
663
00:24:17,966 --> 00:24:20,700
i guess i'm proud of the fact that i stuck with neural networks 我想我最驕傲的是我當年堅持了神經網絡
664
00:24:20,700 --> 00:24:22,400
even when people said they were rubbish 儘管當時人們都說這是垃圾
665
00:24:22,866 --> 00:24:25,000
which was for about the first 40 years 而且說了整整40年
666
00:24:27,766 --> 00:24:30,166
but the intellectual achievement 在智力上的學術成就
667
00:24:30,166 --> 00:24:32,366
i'm most proud of is boltz machines 我最自豪的是玻爾茲曼機
668
00:24:32,466 --> 00:24:34,633
which were an alternative to back propagation它是反向傳播之外的另一種可能
669
00:24:35,633 --> 00:24:37,800
他們是怎麼拯救神經網路的呢
670
00:24:38,100 --> 00:24:39,733
回到剛才異或的例子
671
00:24:39,833 --> 00:24:42,800
他們想既然一個神經元不行
672
00:24:42,800 --> 00:24:44,833
那麼多來幾個可不可以呢
673
00:24:45,200 --> 00:24:48,866
比如說我們將這些感知機的輸出啊
674
00:24:48,866 --> 00:24:50,300
一個一個的拿出來
675
00:24:50,300 --> 00:24:50,666
然後
676
00:24:50,666 --> 00:24:53,533
在後面再嵌套接一層感知機
677
00:24:53,533 --> 00:24:55,733
作為他們下一個感知機的輸入
678
00:24:56,066 --> 00:24:57,666
我們一套娃,套娃
679
00:24:57,666 --> 00:25:00,500
一層又一層出來一個新的感知機
680
00:25:00,733 --> 00:25:01,100
這樣
681
00:25:01,100 --> 00:25:04,033
我們就可以讓中間一層的兩個神經元
682
00:25:04,133 --> 00:25:07,000
分別只被0,1和1,0激活
683
00:25:07,300 --> 00:25:08,733
比如說第一個神經元
684
00:25:08,733 --> 00:25:10,633
它的組合係數是1,-1
685
00:25:10,800 --> 00:25:11,333
此時呢
686
00:25:11,333 --> 00:25:14,200
就只有1,0這個輸入能給它最強的刺激
687
00:25:14,200 --> 00:25:14,900
大小為1
688
00:25:14,900 --> 00:25:16,266
其他的都不超過0
689
00:25:16,500 --> 00:25:19,000
所以我們如果再設定一個1/2的閾值
690
00:25:19,000 --> 00:25:21,900
就可以
讓它只在1,0這個輸入的時候激活
691
00:25:22,400 --> 00:25:25,800
同理呢我們也可以對另一個神經元
692
00:25:25,800 --> 00:25:28,433
在0,1的情況下才會啟動
693
00:25:28,666 --> 00:25:32,000
設定方式呢是係數-1, 1
694
00:25:32,533 --> 00:25:33,200
這樣的話
695
00:25:33,200 --> 00:25:34,466
兩個中間的神經元
696
00:25:34,466 --> 00:25:36,200
就可以分別關注
697
00:25:36,200 --> 00:25:38,466
兩個我們想要激活的位置
698
00:25:38,533 --> 00:25:41,433
接著我們再把這兩個神經元的輸出
699
00:25:41,433 --> 00:25:43,033
直接加在一起
700
00:25:43,300 --> 00:25:45,633
大於0的時候給出最終的激活
701
00:25:45,900 --> 00:25:47,066
這樣整個模型
702
00:25:47,066 --> 00:25:50,200
就可以剛好在1,0和0,1的時候激活
703
00:25:50,200 --> 00:25:52,800
而在0,0和1,1的時候不激活
704
00:25:52,900 --> 00:25:54,733
從而實現異或功能
705
00:25:55,400 --> 00:25:56,100
而這
706
00:25:56,100 --> 00:26:00,666
就是後來大名鼎鼎的MLP Multilayer Perceptron
707
00:26:00,666 --> 00:26:02,433
全名多層感知機
708
00:26:02,900 --> 00:26:06,233
這裡中間層當然可以不止兩個神經元
709
00:26:06,466 --> 00:26:08,400
層數也可以不止兩層
710
00:26:08,666 --> 00:26:11,466
當這些神經元層層疊疊的時候
711
00:26:11,466 --> 00:26:14,133
就是大名鼎鼎的神經網絡
712
00:26:14,600 --> 00:26:16,500
這裡的每一根連線
713
00:26:16,500 --> 00:26:19,800
都標誌著兩個神經元之間的連接強度
714
00:26:19,800 --> 00:26:21,966
是一個可以調節的參數係數
715
00:26:22,200 --> 00:26:23,666
計算機科學家證明
716
00:26:23,733 --> 00:26:26,000
只要這個神經網絡的深度和寬度
717
00:26:26,000 --> 00:26:27,033
都足夠大
718
00:26:27,066 --> 00:26:30,433
那麼理論上它可以擬合任何一種函數
719
00:26:30,466 --> 00:26:32,733
表達任何一種智能所需要的
720
00:26:32,733 --> 00:26:34,800
輸入到輸出之間的對應關係
721
00:26:35,266 --> 00:26:37,866
換言之只要你有一個超大的神
722
00:26:37,866 --> 00:26:38,866
經 網路那麼
723
00:26:38,866 --> 00:26:41,533
任何一個你想要的智慧黑箱的功能
724
00:26:41,533 --> 00:26:44,733
都一定可以透過設定一套參數實現
725
00:26:44,833 --> 00:26:45,666
該怎麼理解
726
00:26:45,666 --> 00:26:47,666
神經網路這種強大的能力呢
727
00:26:47,666 --> 00:26:49,066
還記得我們前面說過嗎
728
00:26:49,066 --> 00:26:52,333
我們用不同的屬性概念組合再激活
729
00:26:52,333 --> 00:26:55,033
就得到了一個可以識別蘋果的感知機
730
00:26:55,033 --> 00:26:55,833
的智能
731
00:26:56,100 --> 00:26:58,633
而如果我們在感知機上繼續套娃
732
00:26:58,733 --> 00:27:01,900
就可以不斷地把原本簡單基礎的概念
733
00:27:01,900 --> 00:27:04,066
組合成更複雜的概念
734
00:27:04,633 --> 00:27:07,700
例如在數字識別的這個神經網絡中啊
735
00:27:07,900 --> 00:27:09,300
最前面的神經元啊
736
00:27:09,300 --> 00:27:12,033
就負責識別一些非常基礎的筆畫
737
00:27:12,033 --> 00:27:15,200
和邊緣而往後層的神經元呢
738
00:27:15,200 --> 00:27:18,000
就負責將這些基礎的特徵組合
739
00:27:18,133 --> 00:27:20,233
識別出一些更複雜的概念
740
00:27:20,233 --> 00:27:23,800
比如說圓形橫線豎線折線等等
741
00:27:24,200 --> 00:27:24,733
接著
742
00:27:24,733 --> 00:27:28,000
更深的神經元可以組合這些線條圖形
743
00:27:28,033 --> 00:27:29,533
識別出複雜的數字
744
00:27:29,633 --> 00:27:31,833
比如說9就是一個環形
745
00:27:31,833 --> 00:27:33,266
加上右下角的尾巴
746
00:27:33,866 --> 00:27:35,066
隨著層次的加深
747
00:27:35,133 --> 00:27:37,833
神經網路逐漸從簡單的這些特徵
748
00:27:37,833 --> 00:27:39,733
推導出複雜的整體形態
749
00:27:39,733 --> 00:27:42,533
最終準確地識別一個複雜的概念
750
00:27:42,666 --> 00:27:44,200
而整個這個過程
751
00:27:44,200 --> 00:27:46,900
不需要任何人類專家知識的介入
752
00:27:46,900 --> 00:27:48,400
是他自動完成的
753
00:27:48,433 --> 00:27:51,400
而這正是神經網路的強大之處
754
00:27:51,533 --> 00:27:52,800
隨著時間的推移
755
00:27:52,900 --> 00:27:55,100
神經網路的技術不斷的進步
756
00:27:55,333 --> 00:27:57,000
前面我們看到的多層感知機
757
00:27:57,000 --> 00:27:59,266
只是最經典最基礎的一種
758
00:27:59,466 --> 00:28:02,500
如何設計更好更強大的模型結構
759
00:28:02,533 --> 00:28:04,900
一直是深度學習的重要課題
760
00:28:05,600 --> 00:28:08,033
比如真實世界裡動物的視覺
761
00:28:08,033 --> 00:28:09,500
神經系統的神經元吶
762
00:28:09,500 --> 00:28:12,200
不需要和前一層的所有神經元
763
00:28:12,200 --> 00:28:13,833
全都稠密的連接
764
00:28:13,933 --> 00:28:16,433
而只需要和局部的幾個神經元連接
765
00:28:16,433 --> 00:28:17,100
就行
766
00:28:17,100 --> 00:28:20,133
而且每個神經元和前一層連接的參數
767
00:28:20,133 --> 00:28:21,833
結構又都是類似的
768
00:28:22,266 --> 00:28:24,233
那麼我們設計神經網路的時候
769
00:28:24,233 --> 00:28:25,800
也可以藉鑑這一點
770
00:28:25,866 --> 00:28:27,866
從而減少參數和運算量
771
00:28:27,866 --> 00:28:29,700
提升神經網路的性能
772
00:28:30,033 --> 00:28:33,700
這就是大名鼎鼎的捲積神經網路CNN
773
00:28:34,266 --> 00:28:35,466
後來研究人員發現
774
00:28:35,466 --> 00:28:36,533
卷積層堆的多了
775
00:28:36,533 --> 00:28:37,800
訓練起來有困難
776
00:28:37,833 --> 00:28:40,066
又增加了一種跳躍式的連接
777
00:28:40,066 --> 00:28:42,400
這就是殘差網絡Resnet
778
00:28:42,733 --> 00:28:43,233
或者
779
00:28:43,233 --> 00:28:46,066
你可以把任何兩層都跳躍連接起來
780
00:28:46,066 --> 00:28:47,866
這就是denset
781
00:28:48,266 --> 00:28:51,000
再到今天GPT的基礎框架Transformer
782
00:28:51,000 --> 00:28:52,300
也就是attention
783
00:28:52,400 --> 00:28:53,133
它們本質上
784
00:28:53,133 --> 00:28:56,000
都是某種網絡的基礎框架結構
785
00:28:56,100 --> 00:28:58,633
然後有大量的參數需要去決定
786
00:28:59,066 --> 00:29:01,666
一個好的結構可以讓黑盒學的更快
787
00:29:01,733 --> 00:29:03,033
需要的數據更少
788
00:29:03,100 --> 00:29:04,600
而這就是深度學習
789
00:29:04,600 --> 00:29:06,633
曾經一個非常重要的領域
790
00:29:06,666 --> 00:29:08,400
神經網路結構設計
791
00:29:09,033 --> 00:29:09,833
你肯定會問
792
00:29:09,833 --> 00:29:11,233
神經網路這麼強大
793
00:29:11,233 --> 00:29:13,700
可以自主地發現資料中蘊藏的結構
794
00:29:13,700 --> 00:29:14,633
理解概念
795
00:29:14,700 --> 00:29:17,066
他究竟是怎麼做到這一點的呢
796
00:29:17,133 --> 00:29:19,133
答案就是用資料訓練
797
00:29:19,533 --> 00:29:20,733
透過獎勵和懲罰
798
00:29:20,733 --> 00:29:22,633
來引導神經網路形成智能
799
00:29:22,833 --> 00:29:24,933
但我們應該究竟怎麼獎勵
800
00:29:24,933 --> 00:29:26,900
懲罰一個神經網路呢
801
00:29:27,266 --> 00:29:29,800
其實從GPT到Alphafold
802
00:29:29,833 --> 00:29:32,333
再到Midjourney和各種強化學習
803
00:29:32,700 --> 00:29:35,100
各種複雜又先進的人工智慧模型
804
00:29:35,100 --> 00:29:36,833
幾乎無一例外的
805
00:29:36,833 --> 00:29:38,700
都在使用著同一種演算法
806
00:29:38,700 --> 00:29:41,133
來訓練網路找到最好的參數
807
00:29:41,200 --> 00:29:43,700
而這個演算法就叫做梯度下降
808
00:29:44,200 --> 00:29:45,133
特此說明啊
809
00:29:45,200 --> 00:29:47,400
這部分內容的數學知識很多
810
00:29:47,400 --> 00:29:48,833
而且技術性很強
811
00:29:49,033 --> 00:29:50,666
但因為它實在是太重要了
812
00:29:50,666 --> 00:29:51,866
所以我們必須要講
813
00:29:51,933 --> 00:29:54,333
因此呢你實在聽不懂也沒有關係
814
00:29:54,700 --> 00:29:56,600
具體的我將沿用油管博主
815
00:29:56,600 --> 00:29:58,800
Artem Kirsanov的影片和思路
816
00:29:58,800 --> 00:29:59,700
為大家講解
817
00:30:00,433 --> 00:30:01,200
在講解梯
818
00:30:01,200 --> 00:30:02,100
度 下降之前
819
00:30:02,100 --> 00:30:04,400
先讓我們簡單回顧一下前面的內容
820
00:30:04,466 --> 00:30:05,733
我們首先提到
821
00:30:05,733 --> 00:30:07,666
智能的本質是一個黑箱
822
00:30:07,866 --> 00:30:08,533
這個黑箱
823
00:30:08,533 --> 00:30:09,700
能夠從數據中
824
00:30:09,700 --> 00:30:12,400
找到輸入和輸出之間的對應關係
825
00:30:12,800 --> 00:30:15,600
換言之,在數據驅動的機器學習
826
00:30:15,600 --> 00:30:17,133
和統計學習眼裡
827
00:30:17,200 --> 00:30:18,333
所謂的智能
828
00:30:18,400 --> 00:30:20,266
本質上就是給你一堆點
829
00:30:20,266 --> 00:30:21,500
然後用一個函數
830
00:30:21,500 --> 00:30:23,500
你和他們之間的關係罷了
831
00:30:23,900 --> 00:30:25,500
這裡的x和y
832
00:30:25,533 --> 00:30:27,800
可以是任何你關心的兩個量
833
00:30:28,100 --> 00:30:29,200
只要學會了一個
834
00:30:29,200 --> 00:30:31,700
可以刻畫這些點趨勢的函數
835
00:30:31,700 --> 00:30:34,100
我們就可以獲得任何一個輸入
836
00:30:34,100 --> 00:30:35,600
對應的合理輸出
837
00:30:35,666 --> 00:30:37,533
換言之實現了智能
838
00:30:38,433 --> 00:30:40,100
該怎麼找到這些數據點
839
00:30:40,100 --> 00:30:42,066
所勾勒出的底層規律呢
840
00:30:42,400 --> 00:30:43,533
根據前面的內容
841
00:30:43,533 --> 00:30:45,033
你可能會想到神經網絡
842
00:30:45,066 --> 00:30:46,400
這當然是一個辦法
843
00:30:46,500 --> 00:30:47,200
不過這裡呢
844
00:30:47,200 --> 00:30:48,533
為了理解梯度下降
845
00:30:48,533 --> 00:30:50,600
我們先用一個簡單一點的方法
846
00:30:50,600 --> 00:30:51,633
找到這個函數
847
00:30:52,000 --> 00:30:56,200
比如說我們線性組合常數x
848
00:30:56,400 --> 00:30:58,133
x平方,x3次方
849
00:30:58,133 --> 00:30:58,900
X4次方
850
00:30:58,900 --> 00:31:02,600
X5次方這幾個簡單的單項式模組
851
00:31:02,866 --> 00:31:03,633
換言之
852
00:31:03,633 --> 00:31:05,700
我們想要找到一個五次多項式
853
00:31:05,700 --> 00:31:07,900
來刻畫這些數據變化的規律
854
00:31:08,000 --> 00:31:10,266
我們需要找到K0到K5
855
00:31:10,266 --> 00:31:12,866
這六個參數最好的組合
856
00:31:13,533 --> 00:31:16,266
那什麼樣的參數是一個好的組合呢
857
00:31:16,266 --> 00:31:18,100
我們需要一種定量的方式
858
00:31:18,100 --> 00:31:21,333
來度量一組係數所對應的多項式
859
00:31:21,433 --> 00:31:22,933
到底擬合的好不好
860
00:31:23,100 --> 00:31:25,466
而這就是損失函數
861
00:31:25,833 --> 00:31:28,100
其實大家早就見過損失函數了
862
00:31:28,266 --> 00:31:29,933
中學學過最小平方法
863
00:31:29,933 --> 00:31:32,200
其實就是用一個簡單的y等於k
864
00:31:32,200 --> 00:31:35,033
x加b的線性函數來搭建黑箱
865
00:31:35,333 --> 00:31:36,500
對每個數據點
866
00:31:36,666 --> 00:31:38,533
線性函數的預測和實際結果
867
00:31:38,533 --> 00:31:39,533
都會有偏差
868
00:31:39,533 --> 00:31:41,133
我們把這些偏差的平方
869
00:31:41,133 --> 00:31:42,066
加在一起
870
00:31:42,066 --> 00:31:44,600
就得到了這根直線的損失函數
871
00:31:45,033 --> 00:31:46,533
在復雜的非線性裡
872
00:31:46,633 --> 00:31:48,600
損失函數也是一樣的道理
873
00:31:48,600 --> 00:31:49,433
我們同樣
874
00:31:49,433 --> 00:31:51,266
把函數預測的數值
875
00:31:51,300 --> 00:31:54,333
和實際資料點的數值誤差平方
876
00:31:54,333 --> 00:31:55,233
加在一起
877
00:31:55,266 --> 00:31:58,000
就得到了這個函數的損失函數
878
00:31:58,333 --> 00:31:59,300
你可以看到
879
00:31:59,333 --> 00:32:00,500
當這個函數的預測
880
00:32:00,500 --> 00:32:03,133
越是貼合這些數據點的趨勢時
881
00:32:03,266 --> 00:32:05,733
損失函數加在一塊就會比較小
882
00:32:05,866 --> 00:32:07,066
而反之呢
883
00:32:07,200 --> 00:32:08,700
損失函數就會比較大
884
00:32:09,233 --> 00:32:10,066
大體來說
885
00:32:10,066 --> 00:32:10,800
損失函數
886
00:32:10,800 --> 00:32:13,133
就是在衡量一個模型預測的
887
00:32:13,133 --> 00:32:15,733
和真實的結果之間的偏差程度
888
00:32:16,033 --> 00:32:18,100
只要記住,掌握規律
889
00:32:18,100 --> 00:32:20,900
就等於損失函數很小,就可以了
890
00:32:21,400 --> 00:32:23,866
請注意這裡出現了兩種函數
891
00:32:23,866 --> 00:32:25,066
大家不要混淆
892
00:32:25,333 --> 00:32:25,900
第一種
893
00:32:25,900 --> 00:32:28,533
是我們用來擬合數據點的這根曲線
894
00:32:28,533 --> 00:32:30,400
我們叫它擬合函數
895
00:32:30,533 --> 00:32:32,433
也就是那個五次多項式
896
00:32:32,666 --> 00:32:34,200
它的輸入是x
897
00:32:34,266 --> 00:32:35,200
輸出是y
898
00:32:35,200 --> 00:32:36,333
我們要決定
899
00:32:36,333 --> 00:32:37,400
這6個參數
900
00:32:37,700 --> 00:32:40,266
輸入到輸出的可能函數有無窮多個
901
00:32:40,266 --> 00:32:42,466
我們想要找到最好的那一個
902
00:32:42,900 --> 00:32:44,833
而什麼叫最好呢哎
903
00:32:44,833 --> 00:32:47,400
為此我們提出了損失函數
904
00:32:47,433 --> 00:32:50,700
它衡量一個擬合函數到底好不好
905
00:32:50,700 --> 00:32:52,066
是一個打分機器
906
00:32:52,433 --> 00:32:55,233
它的輸入是多項式的這6個係數
907
00:32:55,500 --> 00:32:57,233
接受到這些係數之後呢
908
00:32:57,233 --> 00:33:00,633
它會先建構出這個擬合的曲線函數
909
00:33:00,800 --> 00:33:01,466
然後呢
910
00:33:01,466 --> 00:33:04,900
逐以比對計算在所有數據點上的偏差
911
00:33:05,033 --> 00:33:07,100
將它們平方加在一起之後
912
00:33:07,100 --> 00:33:10,200
就會得到最終的損失函數的輸出了
913
00:33:10,600 --> 00:33:12,000
我們只需要找到
914
00:33:12,000 --> 00:33:15,500
使得這個損失函數很低的輸入參數
915
00:33:15,500 --> 00:33:17,733
組合K0到K5
916
00:33:17,733 --> 00:33:20,700
我們就可以找到一個優秀的擬合函數
917
00:33:20,733 --> 00:33:23,000
而有了這個擬合函數之後
918
00:33:23,000 --> 00:33:24,466
我們就可以把這個擬合函數
919
00:33:24,466 --> 00:33:25,533
機器拿過來
920
00:33:25,533 --> 00:33:26,466
輸入任何一
921
00:33:26,466 --> 00:33:27,800
個 我們關心的x
922
00:33:28,033 --> 00:33:31,200
得到一個符合數據規律的合理的y
923
00:33:32,200 --> 00:33:34,900
你可以理解為我們在玩這樣一個遊戲
924
00:33:35,266 --> 00:33:37,833
每一個參數k啊是一個旋鈕
925
00:33:38,033 --> 00:33:39,700
它們通過設置這個係數
926
00:33:39,700 --> 00:33:42,066
會產生一個不同的多項式曲線
927
00:33:42,333 --> 00:33:45,233
而你的目標就是調節這些旋鈕
928
00:33:45,300 --> 00:33:47,300
讓這跟擬合函數的曲線
929
00:33:47,300 --> 00:33:48,900
和數據點比較貼合
930
00:33:49,400 --> 00:33:51,266
事實上神經網路幹的事情
931
00:33:51,266 --> 00:33:53,233
本質上也是完全一樣的
932
00:33:53,300 --> 00:33:54,400
只要把這裡的k
933
00:33:54,400 --> 00:33:58,000
改成神經元之間的連接係數和閾值b
934
00:33:58,133 --> 00:33:59,833
那麼訓練神經網路
935
00:33:59,833 --> 00:34:02,666
同樣也是一個調節參數旋鈕
936
00:34:02,666 --> 00:34:05,066
來降低損失函數的遊戲
937
00:34:06,033 --> 00:34:07,866
這個遊戲難點在於
938
00:34:07,866 --> 00:34:10,700
旋鈕實在是太多太多太多
939
00:34:10,700 --> 00:34:14,300
你看這個5次多樣式有6個參數旋鈕
940
00:34:14,300 --> 00:34:16,066
已經讓人非常頭大
941
00:34:16,133 --> 00:34:19,400
而神經網路的參數個數更是多到離譜
942
00:34:19,400 --> 00:34:20,066
舉個例子
943
00:34:20,066 --> 00:34:23,400
GPT3一共有1,750億個參數
944
00:34:23,633 --> 00:34:27,400
換言之你要同時調好1,000多億個旋鈕
945
00:34:27,500 --> 00:34:30,000
並且讓這些旋鈕組合起來的設定
946
00:34:30,000 --> 00:34:31,500
可以有很好的性能
947
00:34:31,533 --> 00:34:33,800
能夠跟你對話解決問題
948
00:34:33,933 --> 00:34:35,833
是不是聽起來很不可思議呢
949
00:34:35,833 --> 00:34:38,133
這幾乎是一件不可能的事情
950
00:34:38,300 --> 00:34:39,300
在數學上
951
00:34:39,300 --> 00:34:41,933
這個問題叫做非凸優化解
952
00:34:41,933 --> 00:34:44,700
它的難度是臭名昭著的大
953
00:34:45,733 --> 00:34:46,333
這個問題啊
954
00:34:46,333 --> 00:34:49,533
也一度困擾著聯結主義的研究者們
955
00:34:49,633 --> 00:34:51,300
也是神經網路這一派研究
956
00:34:51,300 --> 00:34:53,233
一直沒有真正發展起來
957
00:34:53,233 --> 00:34:54,700
非常重要的原因
958
00:34:54,800 --> 00:34:57,400
因為一旦你的模型做大做複雜
959
00:34:57,533 --> 00:34:59,066
你雖然覺得它很強大
960
00:34:59,066 --> 00:35:00,800
但是你找不到好的參數
961
00:35:00,800 --> 00:35:02,466
讓它實現這種強大
962
00:35:03,033 --> 00:35:03,800
直到後來
963
00:35:03,800 --> 00:35:04,800
1976年
964
00:35:04,800 --> 00:35:08,100
由Seppo Linnainmaa提出了一個巧妙的演算法
965
00:35:08,100 --> 00:35:09,000
梯度下降
966
00:35:09,100 --> 00:35:12,133
並在1986年由David Rumelhart
967
00:35:12,300 --> 00:35:14,633
Geoffrey Hinton和Ronald Williams共
968
00:35:14,633 --> 00:35:16,533
同 提出了反向傳播演算法
969
00:35:16,600 --> 00:35:18,533
才算真正解決了這個問題
970
00:35:18,900 --> 00:35:20,900
讓我們先從最簡單的地方開始
971
00:35:20,900 --> 00:35:23,800
假設這裡除了K1之外的五個旋鈕
972
00:35:23,800 --> 00:35:25,100
都已經被固定好了
973
00:35:25,100 --> 00:35:25,733
我告訴你
974
00:35:25,733 --> 00:35:28,633
已經有人把它設置在了最好的位置上
975
00:35:28,800 --> 00:35:29,333
現在
976
00:35:29,333 --> 00:35:32,666
你只需要去考慮把K1這個旋鈕調好
977
00:35:32,666 --> 00:35:34,333
那麼到底該怎麼辦呢
978
00:35:34,500 --> 00:35:36,200
哎我們可以調節它
979
00:35:36,266 --> 00:35:38,300
觀察這個損失函數的變化
980
00:35:38,833 --> 00:35:39,866
此時你會發現
981
00:35:39,900 --> 00:35:42,466
損失函數就從原來的6個輸入變量
982
00:35:42,466 --> 00:35:44,400
變成只有一個變數K1
983
00:35:44,466 --> 00:35:46,800
哎這是一個一對一變化的函數
984
00:35:46,800 --> 00:35:48,100
我們很容易做圖
985
00:35:48,300 --> 00:35:50,266
做出來的圖大概長這樣
986
00:35:50,300 --> 00:35:53,100
我們的目標就是找到它的最低點
987
00:35:53,800 --> 00:35:55,700
不過不要被這裡的圖誤導了
988
00:35:55,700 --> 00:35:57,433
我們是解釋方便
989
00:35:57,466 --> 00:35:59,733
所以直接把這個圖像畫出來
990
00:35:59,733 --> 00:36:02,833
但實際上我們並不知道這個整個圖像
991
00:36:02,900 --> 00:36:06,100
我們知道的只是某一個具體的K1
992
00:36:06,100 --> 00:36:08,400
下這個擬合函數長什麼樣
993
00:36:08,400 --> 00:36:09,200
然後算出來
994
00:36:09,200 --> 00:36:11,900
這個K1對應的損失函數有多大
995
00:36:12,233 --> 00:36:14,500
所以說
我們只能得到一系列離散的點
996
00:36:14,500 --> 00:36:15,800
對於每一個輸入點
997
00:36:15,800 --> 00:36:17,233
知道函數值是多少
998
00:36:17,233 --> 00:36:19,200
而在這些點中間的位置
999
00:36:19,200 --> 00:36:21,266
損失函數到底是怎麼變化的
1000
00:36:21,266 --> 00:36:22,833
我們是全然不知的
1001
00:36:23,266 --> 00:36:24,066
你會發現
1002
00:36:24,100 --> 00:36:25,333
優化神經網路
1003
00:36:25,333 --> 00:36:28,333
甚至比求損失函數的最小值更複雜
1004
00:36:28,466 --> 00:36:28,833
因為
1005
00:36:28,833 --> 00:36:32,266
你沒有辦法看到整個損失函數的全貌
1006
00:36:32,533 --> 00:36:33,300
這就好比
1007
00:36:33,300 --> 00:36:35,933
把你放到了一片地形高低起伏
1008
00:36:35,933 --> 00:36:37,700
極其複雜的山地上
1009
00:36:37,900 --> 00:36:40,666
每個參數的數值就好比是經緯度
1010
00:36:40,666 --> 00:36:43,133
而海拔高度是損失函數的大小
1011
00:36:43,500 --> 00:36:44,600
周圍大霧瀰漫
1012
00:36:44,600 --> 00:36:47,000
你只能看到自己腳下的地形
1013
00:36:47,000 --> 00:36:48,300
你該如何下山
1014
00:36:48,300 --> 00:36:50,600
走到一個海拔比較低的地方呢
1015
00:36:51,266 --> 00:36:52,833
還是用這個K1的例子
1016
00:36:53,300 --> 00:36:53,866
剛才呢
1017
00:36:53,866 --> 00:36:56,033
我們有一句話說的其實不是很對
1018
00:36:56,233 --> 00:36:57,733
那就是我們知道的資訊
1019
00:36:57,733 --> 00:37:00,266
其實還是比純粹的損失函數大小
1020
00:37:00,266 --> 00:37:01,133
要多一點
1021
00:37:01,300 --> 00:37:02,033
具體來說
1022
00:37:02,033 --> 00:37:05,133
我們還可以知道在某一個位置下
1023
00:37:05,200 --> 00:37:07,500
損失函數到底隨著K1的增大
1024
00:37:07,533 --> 00:37:09,533
是增大還是減小
1025
00:37:09,800 --> 00:37:11,800
用數學一點的說法就是
1026
00:37:11,800 --> 00:37:12,866
我們可以獲得
1027
00:37:12,866 --> 00:37:15,733
損失函數在這一點切線的斜率
1028
00:37:15,833 --> 00:37:18,066
更專業的說法是導數
1029
00:37:18,700 --> 00:37:19,533
這個方法呀
1030
00:37:19,533 --> 00:37:21,733
大家調洗澡水和收音機的時候
1031
00:37:21,733 --> 00:37:22,733
其實都用過
1032
00:37:22,900 --> 00:37:23,500
那就是
1033
00:37:23,500 --> 00:37:25,866
你可以把旋鈕先往某一個方向
1034
00:37:25,866 --> 00:37:26,633
轉一點點
1035
00:37:26,633 --> 00:37:29,800
Delta x看看是更好還是更差
1036
00:37:30,066 --> 00:37:30,666
比如說這裡
1037
00:37:30,666 --> 00:37:32,600
我們初始在X0的位置
1038
00:37:32,600 --> 00:37:33,866
損失函數是Y0
1039
00:37:34,033 --> 00:37:35,900
然後增加了Delta x
1040
00:37:35,900 --> 00:37:37,266
到了X1的位置之後
1041
00:37:37,266 --> 00:37:40,000
我們再看看損失函數變成了Y1(口誤)
1042
00:37:40,066 --> 00:37:41,100
所以我們就會發現
1043
00:37:41,100 --> 00:37:43,133
損失函數增加了一個Delta y
1044
00:37:43,133 --> 00:37:44,466
也就是說它變差了
1045
00:37:44,466 --> 00:37:46,100
那這個時候你就知道
1046
00:37:46,100 --> 00:37:48,400
洗澡水應該往反方向調
1047
00:37:48,866 --> 00:37:51,000
所以當我們的調節變化量
1048
00:37:51,000 --> 00:37:53,133
Delta x無限小的時候
1049
00:37:53,300 --> 00:37:55,800
Delta y和Delta x變化量的比值
1050
00:37:55,800 --> 00:37:57,333
會接近於一個定值
1051
00:37:57,466 --> 00:37:58,300
那就是
1052
00:37:58,300 --> 00:38:01,200
損失函數在這一個點切線的斜率
1053
00:38:01,200 --> 00:38:03,466
而這就是函數在這一點的導數
1054
00:38:03,700 --> 00:38:05,600
在變化很小的時候
1055
00:38:05,633 --> 00:38:08,700
函數值y的變化量正比於x的變化量
1056
00:38:08,700 --> 00:38:10,666
而這個比值就是導數
1057
00:38:11,300 --> 00:38:14,033
所以我們就用一句話來概括一下
1058
00:38:14,033 --> 00:38:15,200
梯度下降的精神
1059
00:38:15,200 --> 00:38:17,633
那就是每次減小一點點
1060
00:38:17,633 --> 00:38:20,333
我們每次看看要減少損失函數
1061
00:38:20,333 --> 00:38:22,900
我們現在的這個位置應該往哪邊走
1062
00:38:23,033 --> 00:38:23,533
然後呢
1063
00:38:23,533 --> 00:38:26,433
就往這個方向走一個很小的距離
1064
00:38:26,600 --> 00:38:28,433
接著呢再看導數再走
1065
00:38:28,833 --> 00:38:30,700
不斷重複上述流程
1066
00:38:30,700 --> 00:38:31,133
這樣我們
1067
00:38:31,133 --> 00:38:33,000
就可以不斷地縮小損失函數
1068
00:38:33,000 --> 00:38:34,733
直到最後停在底部
1069
00:38:34,733 --> 00:38:36,200
參數基本上不再變化
1070
00:38:36,433 --> 00:38:38,666
此時我們就成功地將損失函數
1071
00:38:38,666 --> 00:38:40,500
減少到一個很低的程度
1072
00:38:41,900 --> 00:38:42,233
現在
1073
00:38:42,233 --> 00:38:44,666
我們已經清楚了怎麼調節一個旋鈕
1074
00:38:44,833 --> 00:38:47,500
但這有一個非常不現實的前提
1075
00:38:47,500 --> 00:38:49,033
那就是其他5個旋鈕
1076
00:38:49,033 --> 00:38:50,733
已經調到了最優的狀態
1077
00:38:50,733 --> 00:38:51,866
並被固定住
1078
00:38:52,333 --> 00:38:55,233
現實中你要同時調節好多旋鈕
1079
00:38:55,233 --> 00:38:57,266
而且所有的旋鈕都沒調好
1080
00:38:57,400 --> 00:38:59,033
這個方法有什麼用呢
1081
00:38:59,066 --> 00:39:00,300
哎有用
1082
00:39:00,633 --> 00:39:02,666
事實上剛才我們的這個方法
1083
00:39:02,666 --> 00:39:05,300
可以非常容易的拓展到更一般
1084
00:39:05,300 --> 00:39:06,533
更複雜的情況
1085
00:39:06,900 --> 00:39:07,700
比如說假設
1086
00:39:07,700 --> 00:39:11,133
你現在要同時調節K1和K2兩個旋鈕
1087
00:39:11,433 --> 00:39:12,200
此時
1088
00:39:12,200 --> 00:39:15,133
損失函數變成一個輸入是兩個實數
1089
00:39:15,233 --> 00:39:17,600
輸出是一個實數的二元函數
1090
00:39:17,833 --> 00:39:20,433
它可以表示成一個二維的曲面
1091
00:39:20,800 --> 00:39:21,233
哎
1092
00:39:21,233 --> 00:39:24,100
這就是很多人經常聽到的損失曲面
1093
00:39:24,266 --> 00:39:24,733
這裡
1094
00:39:24,733 --> 00:39:27,400
K1 K2的損失曲面看起來就像一個碗
1095
00:39:28,266 --> 00:39:31,700
且慢二元函數的導數是個啥呢
1096
00:39:31,800 --> 00:39:33,200
現在有兩個旋鈕
1097
00:39:33,200 --> 00:39:35,266
所以調節的方向出現了奇異
1098
00:39:35,600 --> 00:39:37,233
到底是只調K1
1099
00:39:37,233 --> 00:39:38,533
還是只調K2
1100
00:39:38,533 --> 00:39:39,700
還是都調呢
1101
00:39:40,100 --> 00:39:42,533
這裡就涉及到偏導數的概念
1102
00:39:42,600 --> 00:39:44,033
我們可以固定K2
1103
00:39:44,033 --> 00:39:45,633
只而只變化K1
1104
00:39:45,666 --> 00:39:46,033
此時
1105
00:39:46,033 --> 00:39:48,833
我們就得到了損失函數對K1的偏導數
1106
00:39:49,333 --> 00:39:50,833
反過來固定K1
1107
00:39:50,833 --> 00:39:52,100
只變化K2
1108
00:39:52,233 --> 00:39:54,700
此時就得到了對K2的偏導數
1109
00:39:54,700 --> 00:39:55,433
它對應於
1110
00:39:55,433 --> 00:39:58,433
我們固定K2或者K1當中的一個
1111
00:39:58,433 --> 00:40:01,133
然後單獨的調節另一個旋鈕時
1112
00:40:01,133 --> 00:40:03,233
對損失函數輸出的影響
1113
00:40:03,500 --> 00:40:04,466
幾何意義上
1114
00:40:04,500 --> 00:40:05,133
這意味著
1115
00:40:05,133 --> 00:40:07,433
我們用兩個垂直於坐標軸的截面
1116
00:40:07,433 --> 00:40:08,600
和曲面相交
1117
00:40:08,866 --> 00:40:10,833
截面會切出一根曲線來
1118
00:40:10,833 --> 00:40:13,433
然後我們再求這根曲線的導數
1119
00:40:13,700 --> 00:40:15,000
將這兩個導數拼
1120
00:40:15,000 --> 00:40:15,733
在一起
1121
00:40:15,733 --> 00:40:18,100
我們就得到了那個你經常聽說
1122
00:40:18,100 --> 00:40:20,800
但可能不知道是什麼的東西梯度
1123
00:40:21,400 --> 00:40:22,266
梯度說白了
1124
00:40:22,266 --> 00:40:24,066
就是在某個給定位置
1125
00:40:24,066 --> 00:40:26,133
函數值變化最快的方向
1126
00:40:26,133 --> 00:40:29,133
也是曲面在局部最陡峭的方向
1127
00:40:29,233 --> 00:40:31,133
是一個二維版本的求導
1128
00:40:31,500 --> 00:40:34,133
有了它我們就可以重複剛才的流程
1129
00:40:34,233 --> 00:40:35,266
每次向著局部
1130
00:40:35,266 --> 00:40:37,866
損失函數下降最快的方向前進
1131
00:40:37,900 --> 00:40:40,266
我們完全就可以用剛才類似的方法
1132
00:40:40,266 --> 00:40:42,700
愉快的同時調節兩個旋鈕了
1133
00:40:42,866 --> 00:40:46,333
這個方法就是大名鼎鼎的梯度下降
1134
00:40:47,433 --> 00:40:49,633
你想既然兩個可以
1135
00:40:49,633 --> 00:40:50,533
那麼這套方法
1136
00:40:50,533 --> 00:40:52,700
就可以應用到任意多個旋鈕
1137
00:40:53,033 --> 00:40:54,000
這個問題裡
1138
00:40:54,033 --> 00:40:55,300
完整的損失函數
1139
00:40:55,300 --> 00:40:57,233
是一個複雜的六維曲面
1140
00:40:57,600 --> 00:40:59,466
那我們還是可以如法炮製
1141
00:40:59,600 --> 00:41:00,633
對每一個旋鈕
1142
00:41:00,633 --> 00:41:02,666
我們都固定其他的旋鈕
1143
00:41:02,666 --> 00:41:05,633
然後單獨看這個旋鈕和損失函數之間
1144
00:41:05,733 --> 00:41:07,666
它的變化關係是什麼樣的
1145
00:41:07,666 --> 00:41:10,000
增加它損失函數是增加還是減少
1146
00:41:10,266 --> 00:41:12,633
這樣我們就能得到每個旋鈕的偏導數
1147
00:41:12,733 --> 00:41:13,666
拼在一起
1148
00:41:13,666 --> 00:41:15,233
得到了一個6維的梯度
1149
00:41:15,333 --> 00:41:17,800
接下來我們只需要讓每個旋鈕
1150
00:41:17,800 --> 00:41:19,333
都向著對應的方向
1151
00:41:19,333 --> 00:41:21,933
不斷迭代去減小損失函數
1152
00:41:22,000 --> 00:41:25,233
從而擬合出這些資料底層的規律了
1153
00:41:25,333 --> 00:41:26,300
現在我們知道
1154
00:41:26,300 --> 00:41:28,133
梯度下降法可以優化網路
1155
00:41:28,133 --> 00:41:30,066
找到損失函數比較低的參數
1156
00:41:30,433 --> 00:41:32,500
可是面對一個層層堆疊的
1157
00:41:32,500 --> 00:41:34,200
非常複雜的神經網路
1158
00:41:34,333 --> 00:41:37,000
我們怎麼計算出這個梯度呢
1159
00:41:37,266 --> 00:41:38,066
這個問題啊
1160
00:41:38,066 --> 00:41:39,233
非常專業
1161
00:41:39,333 --> 00:41:42,100
答案是反向傳播back propagation
1162
00:41:42,533 --> 00:41:44,033
這是一個專門用於計算
1163
00:41:44,033 --> 00:41:46,100
複雜的神經網路梯度的演算法
1164
00:41:46,100 --> 00:41:48,000
也是很多人學習深度學習
1165
00:41:48,000 --> 00:41:49,466
被勸退的第一步
1166
00:41:49,733 --> 00:41:50,100
這裡
1167
00:41:50,100 --> 00:41:53,000
我們不詳細展開反向傳播具體的細節
1168
00:41:53,000 --> 00:41:54,300
只告訴你它最精髓
1169
00:41:54,300 --> 00:41:55,100
的思想
1170
00:41:55,600 --> 00:41:56,733
不管是神經網路
1171
00:41:56,733 --> 00:41:58,900
還是剛才我們的多項式擬合
1172
00:41:59,066 --> 00:41:59,700
本質上
1173
00:41:59,700 --> 00:42:02,900
我們都是用一些非常簡單的基礎運算
1174
00:42:02,900 --> 00:42:04,800
比如說加減乘除啊
1175
00:42:04,800 --> 00:42:06,666
平方啊指數啊之類的
1176
00:42:06,666 --> 00:42:08,933
不斷的組合複合迭代
1177
00:42:09,066 --> 00:42:12,100
形成了一個超大的複雜的函數
1178
00:42:12,233 --> 00:42:14,800
它們
就像我們用一個個基礎的積木一樣
1179
00:42:14,800 --> 00:42:17,066
拼接成一個龐大的機器
1180
00:42:17,533 --> 00:42:18,666
我們關心的
1181
00:42:18,666 --> 00:42:21,333
無非是每個旋鈕參數的梯度
1182
00:42:21,400 --> 00:42:22,933
用最直白的話說
1183
00:42:22,933 --> 00:42:25,533
我們關心每個旋鈕動一點點
1184
00:42:25,800 --> 00:42:29,133
最後面的損失函數隨之變化的關係
1185
00:42:29,266 --> 00:42:32,233
而這個訊息是可以由後到前
1186
00:42:32,233 --> 00:42:33,433
層層傳遞的
1187
00:42:33,866 --> 00:42:34,466
為什麼呢
1188
00:42:34,466 --> 00:42:37,266
因為每個基本的這個積木的求導
1189
00:42:37,266 --> 00:42:38,633
我們都很清楚
1190
00:42:38,700 --> 00:42:40,900
而積木在組合過程當中
1191
00:42:40,933 --> 00:42:43,600
梯度是怎麼樣組合變化傳遞的
1192
00:42:43,600 --> 00:42:44,800
我們也很清楚
1193
00:42:44,933 --> 00:42:46,666
你看中學我們就學過了
1194
00:42:46,666 --> 00:42:48,133
求導的基礎法則
1195
00:42:48,300 --> 00:42:49,600
加在一起求導
1196
00:42:49,600 --> 00:42:51,500
等於各自的導數相加
1197
00:42:51,600 --> 00:42:52,933
乘在一起求導呢
1198
00:42:52,933 --> 00:42:54,033
則是這個結果
1199
00:42:54,400 --> 00:42:56,333
除了上面說的相加和相乘
1200
00:42:56,333 --> 00:42:58,100
還有一個最重要的性質
1201
00:42:58,100 --> 00:42:59,600
那就是鍊式法則
1202
00:42:59,833 --> 00:43:01,700
如果我們先把一個x
1203
00:43:01,733 --> 00:43:03,100
送入了一個函數g
1204
00:43:03,333 --> 00:43:05,800
再把g(x)這個輸出當成輸入
1205
00:43:05,800 --> 00:43:07,000
送入函數f
1206
00:43:07,133 --> 00:43:09,400
那麼這整個過程合在一塊
1207
00:43:09,400 --> 00:43:10,900
依然是輸入一個x
1208
00:43:10,900 --> 00:43:12,033
輸出一個數值
1209
00:43:12,200 --> 00:43:13,333
它也是一個函數
1210
00:43:13,333 --> 00:43:16,333
是f (g(x))比如說在這裡
1211
00:43:16,333 --> 00:43:17,633
如果一個是正弦
1212
00:43:17,633 --> 00:43:18,500
一個是log
1213
00:43:18,500 --> 00:43:20,933
那麼它的圖像大概長成這個樣子
1214
00:43:21,266 --> 00:43:22,066
問題來了
1215
00:43:22,066 --> 00:43:24,533
我們知道f和g各自的形式
1216
00:43:24,533 --> 00:43:25,733
和各自的導數
1217
00:43:25,733 --> 00:43:27,000
應該怎麼求它
1218
00:43:27,000 --> 00:43:29,900
這個合體的函數對於x的導數呢
1219
00:43:30,033 --> 00:43:30,600
現在
1220
00:43:30,600 --> 00:43:33,533
假設我們把輸入x變化一個Delta
1221
00:43:33,866 --> 00:43:34,900
根據導數的定義
1222
00:43:34,900 --> 00:43:35,533
我們知道
1223
00:43:35,533 --> 00:43:38,666
第一個g(x)在輸入變化Delta的時候
1224
00:43:38,666 --> 00:43:41,900
它的輸出會變化的比例是g'(x)
1225
00:43:42,033 --> 00:43:42,833
所以你就知道
1226
00:43:42,833 --> 00:43:45,033
這個中間的這個輸出g( x)
1227
00:43:45,233 --> 00:43:48,733
此時會增加g'(x )乘以Delta
1228
00:43:49,133 --> 00:43:50,200
那麼進一步呢
1229
00:43:50,200 --> 00:43:52,200
對於後面的這個FX來說
1230
00:43:52,300 --> 00:43:55,300
注意到它的導數是f'(g(x))
1231
00:43:55,466 --> 00:43:56,866
所以說當它的輸入
1232
00:43:56,866 --> 00:43:58,866
變化了中間這麼大的數值的時候
1233
00:43:58,866 --> 00:44:01,433
它的輸出就會在中間這個變化量上
1234
00:44:01,433 --> 00:44:03,900
進一步乘以f'(g(x ))
1235
00:44:04,100 --> 00:44:05,333
也就是這麼大
1236
00:44:05,666 --> 00:44:07,633
當我們把右邊的這整個
1237
00:44:07,633 --> 00:44:09,933
除以x的變化量Delta的時候
1238
00:44:09,933 --> 00:44:12,533
就可以得到鍊式求導的法則
1239
00:44:12,600 --> 00:44:14,533
也就是說先做g(x)
1240
00:44:14,533 --> 00:44:16,733
再做f(x)一起求導
1241
00:44:16,733 --> 00:44:20,900
得到的結果是g'(x)乘以f'(g(x))
1242
00:44:21,700 --> 00:44:23,433
這就是複合函數的求導
1243
00:44:23,733 --> 00:44:25,700
如果用前面積木的比喻
1244
00:44:25,700 --> 00:44:29,066
你可以想像有三個齒輪互相咬合
1245
00:44:29,300 --> 00:44:31,133
它們轉過的角度啊
1246
00:44:31,133 --> 00:44:34,033
就分別代表x,g(x)和f(g(x))
1247
00:44:34,033 --> 00:44:36,000
而導數g'(x)呢
1248
00:44:36,000 --> 00:44:38,266
表示第二個齒輪g(x)
1249
00:44:38,266 --> 00:44:39,866
相較於第一個齒輪x
1250
00:44:40,100 --> 00:44:41,633
傳動的速度之比
1251
00:44:41,900 --> 00:44:43,033
那f'(g(x))呢
1252
00:44:43,033 --> 00:44:44,033
就是第三個齒輪
1253
00:44:44,033 --> 00:44:46,833
相當於第二個齒輪g(x)傳動的速度之比
1254
00:44:46,933 --> 00:44:49,100
如果我們想要知道變動一點點
1255
00:44:49,100 --> 00:44:49,933
第一個齒輪x
1256
00:44:49,933 --> 00:44:52,666
第三個齒輪到底變化的速度會有多快
1257
00:44:52,666 --> 00:44:54,933
我們只需要把這兩個齒輪的傳動比
1258
00:44:54,933 --> 00:44:56,266
乘在一起就可以了
1259
00:44:56,266 --> 00:44:57,500
這就是鍊式法則
1260
00:44:57,533 --> 00:44:58,666
有了鍊式法則
1261
00:44:58,666 --> 00:45:01,333
我們就可以從後往前一步步拆解
1262
00:45:01,400 --> 00:45:03,100
得到每一個參數的導數
1263
00:45:03,433 --> 00:45:05,466
這是因為任何一個參數
1264
00:45:05,466 --> 00:45:07,100
從它到損失函數
1265
00:45:07,100 --> 00:45:09,466
一定是經過了一系列函數的複合
1266
00:45:09,666 --> 00:45:12,700
到最後一層輸出就是模型預測本身了
1267
00:45:12,700 --> 00:45:13,500
我們可以直接
1268
00:45:13,500 --> 00:45:16,000
計算損失函數以及它的導數
1269
00:45:16,433 --> 00:45:18,866
接著我們就可以用剛才的鍊式法則
1270
00:45:18,866 --> 00:45:21,433
一層一層從後往前的
1271
00:45:21,433 --> 00:45:24,300
把每一層嵌套這個傳導的導函數
1272
00:45:24,300 --> 00:45:25,933
一步一步的乘在一起
1273
00:45:26,200 --> 00:45:29,200
當我們回到最開始K1的位置的時候
1274
00:45:29,200 --> 00:45:32,433
就得到了K1相較於整個輸出
1275
00:45:32,433 --> 00:45:34,033
損失函數的梯度
1276
00:45:34,066 --> 00:45:35,233
而這個演算法
1277
00:45:35,233 --> 00:45:38,300
就叫做反向傳播back propagation
1278
00:45:39,300 --> 00:45:41,133
所以我們最後總結一下
1279
00:45:41,200 --> 00:45:42,933
找到這個幾百萬個旋鈕
1280
00:45:42,933 --> 00:45:44,933
機器最好參數設定的方法
1281
00:45:44,933 --> 00:45:47,266
就是用反向傳播演算法
1282
00:45:47,266 --> 00:45:49,133
計算出每個參數的導數
1283
00:45:49,333 --> 00:45:51,266
接著呢用梯度下降法
1284
00:45:51,300 --> 00:45:53,466
每次讓這些參數變化一點點
1285
00:45:53,466 --> 00:45:56,533
不斷地朝著更好的參數演化和移動
1286
00:45:56,933 --> 00:45:59,900
最後整個神經網路就會神奇的理解
1287
00:45:59,900 --> 00:46:01,533
掌握資料中的規律
1288
00:46:01,533 --> 00:46:02,733
學會底層函數
1289
00:46:02,733 --> 00:46:05,433
並獲得這種我們想要的智能
1290
00:46:05,833 --> 00:46:06,866
在前面的內容中
1291
00:46:06,866 --> 00:46:10,000
我們詳細講解了智能就是搭建黑箱
1292
00:46:10,033 --> 00:46:11,000
以及神經網絡
1293
00:46:11,000 --> 00:46:11,700
這個強大
1294
00:46:11,700 --> 00:46:14,400
通用的黑箱的構造和由來是什麼
1295
00:46:14,400 --> 00:46:16,600
還有如何訓練一個神經網路
1296
00:46:17,133 --> 00:46:19,600
不過這裡還有一個很重要的問題
1297
00:46:19,900 --> 00:46:21,433
這個神經網路的黑盒子
1298
00:46:21,433 --> 00:46:23,400
是怎麼舉一反三的呢
1299
00:46:23,400 --> 00:46:26,500
你看呢我們只是收集了一些數據
1300
00:46:26,500 --> 00:46:27,533
然後訓練它
1301
00:46:27,533 --> 00:46:29,400
在我們收集的數據中
1302
00:46:29,400 --> 00:46:30,833
對於見過的輸入
1303
00:46:30,933 --> 00:46:32,466
比如說這張數字圖片
1304
00:46:32,600 --> 00:46:35,133
它要輸出成我們想要的輸出6
1305
00:46:35,433 --> 00:46:37,266
那他見過這些東西
1306
00:46:37,300 --> 00:46:39,933
能夠把它正確識別成6並不奇怪
1307
00:46:40,333 --> 00:46:43,600
但是對於從未見過的其他圖片
1308
00:46:43,800 --> 00:46:45,066
訓練好的網絡
1309
00:46:45,066 --> 00:46:48,433
是怎麼能夠同時認出其他的數字的呢
1310
00:46:48,866 --> 00:46:51,600
這就好比你給一個人做了很多題
1311
00:46:51,666 --> 00:46:54,666
他能夠把你給他的練習冊的題做對
1312
00:46:54,666 --> 00:46:55,466
不奇怪
1313
00:46:55,500 --> 00:46:59,000
但是他是怎麼樣學會這些解題的方法
1314
00:46:59,000 --> 00:47:01,733
在新的題上考試也能考好的呢
1315
00:47:02,466 --> 00:47:04,533
這個問題其實很深刻
1316
00:47:04,800 --> 00:47:05,466
它牽涉到
1317
00:47:05,466 --> 00:47:06,900
機器學習能夠成立的
1318
00:47:06,900 --> 00:47:08,800
一個非常重要的問題
1319
00:47:08,933 --> 00:47:11,100
泛化general ization
1320
00:47:11,433 --> 00:47:13,100
這個名詞看起來很高端
1321
00:47:13,133 --> 00:47:14,633
但正如我們剛才所說的
1322
00:47:14,633 --> 00:47:16,233
它的本意就是推廣
1323
00:47:16,266 --> 00:47:17,233
舉一反三
1324
00:47:17,266 --> 00:47:18,333
活學活用
1325
00:47:19,266 --> 00:47:22,266
我們還是從前面的最小2乘說起
1326
00:47:22,266 --> 00:47:25,100
以及曲線擬合思考這樣一個問題
1327
00:47:25,400 --> 00:47:28,000
對於中間這個位置輸入的x
1328
00:47:28,000 --> 00:47:30,100
我們沒有任何y的數據
1329
00:47:30,300 --> 00:47:32,266
但你還是會覺得
1330
00:47:32,266 --> 00:47:34,800
它應該就在這個範圍裡
1331
00:47:35,033 --> 00:47:35,933
為什麼呢
1332
00:47:36,333 --> 00:47:38,866
沒錯因為這些零散的數據點
1333
00:47:38,866 --> 00:47:40,800
勾勒出了一種趨勢
1334
00:47:41,233 --> 00:47:44,400
當我們用這樣的一個連續平滑的函數
1335
00:47:44,400 --> 00:47:46,833
準確地刻畫出這種趨勢之後
1336
00:47:46,866 --> 00:47:48,666
就可以利用這個函數
1337
00:47:48,733 --> 00:47:49,233
推測
1338
00:47:49,233 --> 00:47:52,333
數據中我們沒有見過的某一個輸入下
1339
00:47:52,500 --> 00:47:55,800
對應的合理的輸出大概應該是多少
1340
00:47:56,200 --> 00:47:58,633
這其實就是一種最簡單的泛化
1341
00:47:58,633 --> 00:48:01,700
我們將這種關聯的趨勢理解
1342
00:48:01,700 --> 00:48:02,733
並且推廣到
1343
00:48:02,733 --> 00:48:05,233
我們沒有見過的一些輸入數值
1344
00:48:05,266 --> 00:48:06,700
通過理解底層規律
1345
00:48:06,700 --> 00:48:09,833
在未知情境下給出合理的預測和輸出
1346
00:48:10,666 --> 00:48:11,633
那同樣的
1347
00:48:11,666 --> 00:48:14,266
神經網絡也有泛化能力
1348
00:48:14,266 --> 00:48:17,033
而且是很強的泛化能力
1349
00:48:17,266 --> 00:48:18,833
雖然在訓練資料中
1350
00:48:18,833 --> 00:48:21,333
他沒有看過一模一樣的圖片
1351
00:48:21,500 --> 00:48:23,933
但是呢他可以在訓練過程中
1352
00:48:23,933 --> 00:48:24,533
發現
1353
00:48:24,533 --> 00:48:28,266
這些輸入的圖片和標籤之間的趨勢
1354
00:48:28,266 --> 00:48:30,600
和這種微妙的關聯性
1355
00:48:31,033 --> 00:48:32,000
這種關聯啊
1356
00:48:32,000 --> 00:48:34,733
就跟我們前面的曲線擬合的時候
1357
00:48:34,800 --> 00:48:36,533
中間斷開的那一部分
1358
00:48:36,533 --> 00:48:38,533
看起來應該要這樣連線
1359
00:48:38,600 --> 00:48:41,600
所以你可以預測那其中的函數值一樣
1360
00:48:42,066 --> 00:48:44,133
只不過在我們現實的數據裡
1361
00:48:44,133 --> 00:48:46,533
這個趨勢可能非常抽像
1362
00:48:46,533 --> 00:48:48,933
不如剛才的曲線擬合這麼直觀
1363
00:48:49,200 --> 00:48:50,433
而這正是神
1364
00:48:50,433 --> 00:48:52,033
經 網路強大的地方
1365
00:48:52,133 --> 00:48:53,833
你只需要提供數據
1366
00:48:53,833 --> 00:48:56,400
那麼底層抽象的趨勢和規律
1367
00:48:56,466 --> 00:48:58,033
只需要交給神經網路
1368
00:48:58,033 --> 00:49:00,200
他自己學就可以學明白了
1369
00:49:00,666 --> 00:49:01,833
很多行業和學科
1370
00:49:01,833 --> 00:49:03,666
其實都面臨著這類問題
1371
00:49:03,666 --> 00:49:07,066
就是不同的情境裡有一種感覺和規律
1372
00:49:07,066 --> 00:49:08,333
這種感覺和規律
1373
00:49:08,333 --> 00:49:12,500
難以用簡單清晰的數學來計算和描述
1374
00:49:12,666 --> 00:49:14,233
比如說圍棋裡
1375
00:49:14,233 --> 00:49:16,466
這一棋形看起來好不好
1376
00:49:16,500 --> 00:49:17,466
能不能活
1377
00:49:17,500 --> 00:49:20,033
有經驗的棋手一眼能看出來
1378
00:49:20,100 --> 00:49:22,100
行話叫做味道不好
1379
00:49:22,400 --> 00:49:25,033
但是怎麼樣學會這種感覺和味道
1380
00:49:25,033 --> 00:49:26,100
卻非常複雜
1381
00:49:26,733 --> 00:49:29,133
還有在說話這個問題上
1382
00:49:29,133 --> 00:49:31,133
一句話前面的語境下
1383
00:49:31,133 --> 00:49:33,233
後面該接上一個什麼樣的話
1384
00:49:33,333 --> 00:49:35,933
也是一種複雜和微妙的語感
1385
00:49:36,000 --> 00:49:37,200
但是怎麼學呢
1386
00:49:37,200 --> 00:49:40,833
很難說更不用說從氨基酸序列里
1387
00:49:40,833 --> 00:49:42,900
分析出整個蛋白質結構
1388
00:49:43,000 --> 00:49:45,633
這種極為抽象複雜的規律
1389
00:49:46,066 --> 00:49:48,533
曾經我們需要非常專業的知識
1390
00:49:48,533 --> 00:49:50,733
來模仿人類的聰明智慧
1391
00:49:50,733 --> 00:49:52,266
而且模仿的還不好
1392
00:49:52,700 --> 00:49:53,833
而有了深度學習
1393
00:49:53,833 --> 00:49:55,600
你可以不管三七二十一
1394
00:49:55,733 --> 00:49:58,333
隻需要找一個架構合適的神經網絡
1395
00:49:58,433 --> 00:49:59,433
收集數據
1396
00:49:59,600 --> 00:50:01,000
訓練擬合
1397
00:50:01,000 --> 00:50:02,233
然後這個神經網路
1398
00:50:02,233 --> 00:50:03,833
就能領會資料當中
1399
00:50:03,833 --> 00:50:06,866
你所描述的輸入和輸出間微妙的聯繫
1400
00:50:06,933 --> 00:50:08,066
並舉一反三
1401
00:50:08,066 --> 00:50:09,700
應用到任何潛在的
1402
00:50:09,700 --> 00:50:11,833
他沒有見過的情境輸入中
1403
00:50:12,000 --> 00:50:13,866
很多時候做的比人都好
1404
00:50:14,333 --> 00:50:17,500
這種公式一樣的解決方案非常通用
1405
00:50:17,500 --> 00:50:19,400
因而席捲了各個領域
1406
00:50:19,400 --> 00:50:22,033
引發了這些年的人工智能革命
1407
00:50:23,633 --> 00:50:26,833
但是神經網絡和深度學習是萬能的嗎
1408
00:50:27,033 --> 00:50:28,700
答案當然是否定的
1409
00:50:29,033 --> 00:50:30,633
每當有一個很厲害的方法
1410
00:50:30,633 --> 00:50:33,033
可以實現以往不可思議的任務時
1411
00:50:33,100 --> 00:50:35,333
人類就有把它當成魔法的傾向
1412
00:50:35,833 --> 00:50:37,533
儘管深度學習的確模
1413
00:50:37,533 --> 00:50:39,300
仿了 大腦的神經元結構
1414
00:50:39,400 --> 00:50:42,733
但是
它和真正的人類智能還有很大的區別
1415
00:50:42,866 --> 00:50:44,600
我們都見過這樣的梗圖
1416
00:50:44,666 --> 00:50:46,833
該怎麼區分柴犬和麵包
1417
00:50:47,000 --> 00:50:48,933
說它們看起來有很多相似之處
1418
00:50:48,933 --> 00:50:50,433
比如說都是黃色的呀
1419
00:50:50,433 --> 00:50:51,633
長條形的呀什麼
1420
00:50:51,633 --> 00:50:52,666
難以區分
1421
00:50:53,100 --> 00:50:54,833
這原本是一個玩梗
1422
00:50:54,933 --> 00:50:57,666
但對於一切機器學習演算法來說
1423
00:50:57,666 --> 00:51:00,266
這都是一個根本且致命的問題
1424
00:51:00,333 --> 00:51:01,866
因為你看這個模型
1425
00:51:01,866 --> 00:51:05,200
它一直就是透過各種圖像的特徵輸入
1426
00:51:05,266 --> 00:51:07,500
和你要它的這個標籤
1427
00:51:07,500 --> 00:51:09,300
來理解圖片的內容的
1428
00:51:09,466 --> 00:51:13,133
所以它在訓練當中所理解的事情就是
1429
00:51:13,133 --> 00:51:15,533
一個黃色的長條形的物體
1430
00:51:15,633 --> 00:51:17,400
是麵包因此
1431
00:51:17,400 --> 00:51:19,933
當你給它一個在訓練集以外的柴犬
1432
00:51:19,933 --> 00:51:22,600
圖片時它會因為這個柴犬
1433
00:51:22,600 --> 00:51:24,500
符合麵包的各種特徵
1434
00:51:24,500 --> 00:51:26,200
而產生錯誤的判斷
1435
00:51:26,600 --> 00:51:29,633
這本質上是概念之間的相關性
1436
00:51:29,633 --> 00:51:32,500
和因果關係之間微妙的區別
1437
00:51:32,500 --> 00:51:33,500
他沒有把握
1438
00:51:33,700 --> 00:51:34,933
而這個問題
1439
00:51:34,933 --> 00:51:36,066
在收集數據
1440
00:51:36,066 --> 00:51:38,433
訓練模型的這一套方法論中
1441
00:51:38,433 --> 00:51:39,900
永遠無法避免
1442
00:51:40,400 --> 00:51:43,200
這就是為什麼有很多用神經網路啊
1443
00:51:43,200 --> 00:51:43,866
算命
1444
00:51:43,866 --> 00:51:46,933
或預測犯罪機率的應用廣受批評
1445
00:51:47,066 --> 00:51:47,666
因為
1446
00:51:47,666 --> 00:51:51,033
模型會錯誤的把資料集裡的共同出現
1447
00:51:51,066 --> 00:51:52,400
當成必然聯繫
1448
00:51:52,400 --> 00:51:52,800
比如說
1449
00:51:52,800 --> 00:51:55,200
看到黑人就覺得一定會犯罪這個樣子
1450
00:51:55,866 --> 00:51:56,866
更糟糕的是
1451
00:51:56,866 --> 00:51:58,200
你可能永遠不知道
1452
00:51:58,200 --> 00:51:59,700
強大的神經網絡黑盒
1453
00:51:59,700 --> 00:52:01,900
究竟領會了什麼神秘的連結
1454
00:52:02,100 --> 00:52:04,400
因為神經網路太過強大和複雜
1455
00:52:04,400 --> 00:52:06,100
所以我們幾乎無法理解
1456
00:52:06,100 --> 00:52:07,900
它的內部是如何運作
1457
00:52:07,933 --> 00:52:10,000
給出我們想要的合理預測的
1458
00:52:10,066 --> 00:52:12,266
一個典型的例子是對抗樣本
1459
00:52:12,500 --> 00:52:13,666
這是兩張圖片
1460
00:52:13,666 --> 00:52:15,533
你能看出它們有什麼區別嗎
1461
00:52:16,133 --> 00:52:18,066
但如果讓一個準確率非常高的
1462
00:52:18,066 --> 00:52:19,400
最先進的神經網絡
1463
00:52:19,400 --> 00:52:21,033
來看第一張圖片
1464
00:52:21,033 --> 00:52:22,266
他覺得是熊貓
1465
00:52:22,333 --> 00:52:23,733
但第二張圖片
1466
00:52:23,733 --> 00:52:27,200
他以99%的信心認為是一隻烏龜
1467
00:52:27,800 --> 00:52:28,866
仔細看你會發現
1468
00:52:28,866 --> 00:52:30,600
第二張圖片相較於第一張
1469
00:52:30,600 --> 00:52:33,000
添加了一些十分微小的噪聲
1470
00:52:33,100 --> 00:52:35,200
而這些噪聲可不是亂來的
1471
00:52:35,200 --> 00:52:36,933
它經過了特別的設計
1472
00:52:37,033 --> 00:52:38,933
專門用來欺騙神經網路
1473
00:52:39,433 --> 00:52:41,633
這種圖片就叫做對抗樣本
1474
00:52:41,833 --> 00:52:43,333
對它的理解與研究
1475
00:52:43,333 --> 00:52:45,000
直到現在還在進行
1476
00:52:45,000 --> 00:52:47,300
而我們依然沒有徹底理解它
1477
00:52:47,600 --> 00:52:48,900
大家一般認為
1478
00:52:48,900 --> 00:52:49,733
它觸發了
1479
00:52:49,733 --> 00:52:52,066
神經網絡底層某些神奇的開關
1480
00:52:52,300 --> 00:52:55,333
這些在人眼看來雜亂無章的噪聲
1481
00:52:55,400 --> 00:52:56,533
在神經網絡看來
1482
00:52:56,533 --> 00:52:59,400
卻有著強烈的烏龜的特點和相關性
1483
00:52:59,666 --> 00:53:00,466
看到這裡
1484
00:53:00,466 --> 00:53:02,900
你還覺得神經網路無所不能嗎
1485
01:25:34,566 --> 01:25:37,333
有關AI很多人關心的切身問題是
1486
01:25:37,333 --> 01:25:38,666
他會讓我失業嗎
1487
01:25:39,000 --> 01:25:39,800
總的來說
1488
01:25:39,800 --> 01:25:41,133
深度學習和神經網絡
1489
01:25:41,133 --> 01:25:42,966
提供了一套全新的智能思路
1490
01:25:43,166 --> 01:25:44,366
你只要收集數據
1491
01:25:44,366 --> 01:25:45,733
再用梯度下降的方法
1492
01:25:45,733 --> 01:25:47,366
訓練一個好的神經網絡
1493
01:25:47,466 --> 01:25:49,133
就能讓這個超級黑箱
1494
01:25:49,133 --> 01:25:50,533
理解數據中的規律
1495
01:25:50,533 --> 01:25:51,766
從而舉一反三
1496
01:25:51,766 --> 01:25:53,466
對任何未知的情景輸入
1497
01:25:53,466 --> 01:25:54,800
給出智能的預測
1498
01:25:55,133 --> 01:25:56,666
這的確是一場革命
1499
01:25:56,800 --> 01:25:58,000
它讓AI解決了很多
1500
01:25:58,000 --> 01:25:59,933
曾經只有人類才能完成的
1501
01:25:59,933 --> 01:26:03,266
非常微妙複雜數據龐大的任務
1502
01:26:03,700 --> 01:26:04,200
因此
1503
01:26:04,200 --> 01:26:07,733
如果一個工作他數據充足模式固定
1504
01:26:07,800 --> 01:26:10,933
其中機械性按部就班的性質比較強
1505
01:26:11,066 --> 01:26:13,500
那麼你就很容易收集大量的數據
1506
01:26:13,500 --> 01:26:14,366
用於訓練
1507
01:26:14,533 --> 01:26:17,400
AI就可以在基礎的日常使用中
1508
01:26:17,400 --> 01:26:19,400
相當程度上替代人工
1509
01:26:19,866 --> 01:26:21,266
從這個角度上來說
1510
01:26:21,300 --> 01:26:25,400
文秘插畫攝影翻譯財務
1511
01:26:25,533 --> 01:26:27,600
甚至是底層程序員
1512
01:26:27,600 --> 01:26:31,266
這些職業都會在未來面臨極大的衝擊
1513
01:26:31,600 --> 01:26:33,800
然而如前面所提到的那樣
1514
01:26:33,800 --> 01:26:36,000
如今的人工智慧絕非萬能
1515
01:26:36,266 --> 01:26:38,900
相反很多時候它還是人工智障
1516
01:26:46,900 --> 01:26:48,700
即便是現在的大模型
1517
01:26:48,700 --> 01:26:50,466
依然在很多複雜的問題上
1518
01:26:50,466 --> 01:26:51,700
表現的不夠理想
1519
01:26:51,800 --> 01:26:54,866
AI在面對超出訓練數據範圍的
1520
01:26:54,866 --> 01:26:56,300
全新問題時
1521
01:26:56,300 --> 01:26:58,400
往往還是難以做出合理的判斷
1522
01:26:59,133 --> 01:27:00,500
實際上我認為
1523
01:27:00,500 --> 01:27:03,466
AI的發展更有可能改變工作的性質
1524
01:27:03,466 --> 01:27:04,966
而不是完全取代它
1525
01:27:05,266 --> 01:27:06,900
比如說文書工作
1526
01:27:06,900 --> 01:27:09,666
可能會因為AI的介入變得更加高效
1527
01:27:09,966 --> 01:27:13,066
人類將在監督和決策的層面上
1528
01:27:13,066 --> 01:27:13,933
進行管理
1529
01:27:13,933 --> 01:27:17,066
而並非親自處理那些瑣碎的事務
1530
01:27:17,333 --> 01:27:20,133
同樣設計和創意類的工作
1531
01:27:20,133 --> 01:27:21,733
比如說插畫廣
1532
01:27:21,733 --> 01:27:22,866
告 等等領域
1533
01:27:22,900 --> 01:27:23,300
儘管
1534
01:27:23,300 --> 01:27:25,566
AI可以為你生成一些初步的作品
1535
01:27:25,566 --> 01:27:27,100
和基礎的素材
1536
01:27:27,333 --> 01:27:30,400
但真正打動人心的創意和靈感
1537
01:27:30,500 --> 01:27:32,600
目前還是需要人類的參與
1538
01:27:32,866 --> 01:27:33,666
同樣的
1539
01:27:33,666 --> 01:27:36,866
它可以幫助科研人員寫文章改病句
1540
01:27:36,866 --> 01:27:39,500
甚至是進行一些簡單的公式推導
1541
01:27:39,500 --> 01:27:40,733
和程式碼撰寫
1542
01:27:40,933 --> 01:27:41,733
但是
1543
01:27:41,733 --> 01:27:45,100
真正的科學研究的idea還是得自己去想
1544
01:27:45,333 --> 01:27:46,766
AI生成的內容
1545
01:27:46,766 --> 01:27:49,066
往往缺乏人類情感的深度
1546
01:27:49,066 --> 01:27:50,666
模糊和複雜性
1547
01:27:50,900 --> 01:27:52,300
這也是它在某些領域
1548
01:27:52,300 --> 01:27:54,600
難以超越人類的根本原因
1549
01:27:54,900 --> 01:27:55,933
更重要的是
1550
01:27:55,966 --> 01:27:56,800
目前的AI
1551
01:27:56,800 --> 01:27:59,400
還缺少在現實世界中交互的能力
1552
01:27:59,500 --> 01:28:01,666
自動駕駛機器人這些領域
1553
01:28:01,733 --> 01:28:02,966
AI的發展速度
1554
01:28:02,966 --> 01:28:05,466
遠不如大眾想像的那麼樂觀
1555
01:28:06,200 --> 01:28:07,366
所以總而言之
1556
01:28:07,400 --> 01:28:09,733
AI的確會對一些職業造成影響
1557
01:28:09,733 --> 01:28:12,533
尤其是那些重複性高模式固定的領域
1558
01:28:12,666 --> 01:28:15,666
但同時它也會帶來新的機會
1559
01:28:15,933 --> 01:28:17,133
未來的關鍵在於
1560
01:28:17,133 --> 01:28:19,333
如何積極地適應這種變化
1561
01:28:19,366 --> 01:28:20,700
提升自身的技能
1562
01:28:20,700 --> 01:28:22,900
以便更好地與AI協同工作
1563
01:28:22,933 --> 01:28:24,200
而不是被它所取代
1564
01:28:24,766 --> 01:28:27,366
人類的創造力情感和智慧
1565
01:28:27,366 --> 01:28:31,200
依然是AI無法模擬和完全超越的
1566
01:28:31,400 --> 01:28:33,733
你也可以投入AI的潮流中
1567
01:28:33,800 --> 01:28:35,366
就以這期影片為起點
1568
01:28:35,366 --> 01:28:36,133
開始學習
1569
01:28:36,133 --> 01:28:36,933
多看幾遍
1570
01:28:36,933 --> 01:28:38,166
打不過就加入嘛
1571
01:28:38,166 --> 01:28:39,933
也不失為一種好的策略
1572
01:28:40,966 --> 01:28:43,066
以上就是這期影片的全部內容
1573
01:28:43,200 --> 01:28:45,000
製作真的很不容易
1574
01:28:45,000 --> 01:28:46,900
還希望大家點讚收藏
1575
01:28:46,900 --> 01:28:47,766
多多支持
1576
01:28:47,866 --> 01:28:48,266
如果
1577
01:28:48,266 --> 01:28:51,166
你以後想看到更多類似的深度科普
1578
01:28:51,166 --> 01:28:52,133
記得關注我
1579
01:28:52,166 --> 01:28:53,000
漫士沉思路
1580
01:28:53,000 --> 01:28:54,133
學海引路不辛苦
1581
01:28:54,133 --> 01:28:55,333
我們下期再會
111183