﻿WEBVTT

1
00:00:00.221 --> 00:00:03.721
(bright electronic music)

2
00:00:11.127 --> 00:00:15.480
<v ->Qian Yang completed his PhD here in 1989.</v>

3
00:00:15.480 --> 00:00:17.779
I was his PhD advisor.

4
00:00:17.779 --> 00:00:20.541
He was a professor in Canada for about 10 years

5
00:00:20.541 --> 00:00:22.120
and then he moved to the

6
00:00:22.120 --> 00:00:24.920
Hong Kong University of Science and Technology.

7
00:00:24.920 --> 00:00:27.800
He currently has an endowed chair and in addition he's the

8
00:00:27.800 --> 00:00:30.941
head of their Nuclear Science and Engineering Department.

9
00:00:30.941 --> 00:00:35.363
He has a hugely influential set of academic publications.

10
00:00:35.363 --> 00:00:37.696
His h-index currently is 89.

11
00:00:38.550 --> 00:00:41.388
In addition he has founded two major journals.

12
00:00:41.388 --> 00:00:43.628
The ACM Transactions on Intelligent Systems

13
00:00:43.628 --> 00:00:47.185
and the IEEE Transactions on Big Data.

14
00:00:47.185 --> 00:00:51.118
He's the fellow of four major professional organizations,

15
00:00:51.118 --> 00:00:53.535
the AAAI, the IEEE, the IAPR,

16
00:00:54.957 --> 00:00:57.601
and most impressively the AAAS.

17
00:00:57.601 --> 00:01:01.540
Finally, he's a member of our department's

18
00:01:01.540 --> 00:01:03.324
Alumni Hall of Fame.

19
00:01:03.324 --> 00:01:06.481
Qian, we're very proud of you.

20
00:01:06.481 --> 00:01:08.261
<v ->Thank you, Dana.</v>

21
00:01:08.261 --> 00:01:13.078
Thank you everybody for coming on this Monday afternoon

22
00:01:13.078 --> 00:01:15.161
right after Thanksgiving.

23
00:01:16.161 --> 00:01:18.744
So my talk title is right here.

24
00:01:22.241 --> 00:01:24.463
When Transfer Learning Meets Deep Learning.

25
00:01:24.463 --> 00:01:28.511
You must be curious abut this type of knowledge.

26
00:01:28.511 --> 00:01:32.201
Everyone has heard about Deep Learning,

27
00:01:32.201 --> 00:01:33.861
but not so much about Transfer Learning.

28
00:01:33.861 --> 00:01:36.419
So let me tell you from the beginning.

29
00:01:36.419 --> 00:01:40.086
Now everyone has heard of alpha mode, right?

30
00:01:42.093 --> 00:01:45.475
This is the reason why AI interests

31
00:01:45.475 --> 00:01:49.373
and there's a surge of interest in AI.

32
00:01:49.373 --> 00:01:52.206
Do you know what AI cannot yet do?

33
00:01:53.975 --> 00:01:56.892
So if you take a certain size board

34
00:01:58.776 --> 00:02:03.757
and had it perfectly trained perfectly for this board.

35
00:02:03.757 --> 00:02:06.739
But if you change the size of the board

36
00:02:06.739 --> 00:02:08.851
then alpha mode to be completely

37
00:02:08.851 --> 00:02:12.072
retrained for that board, okay.

38
00:02:12.072 --> 00:02:14.270
Now if you take that even further.

39
00:02:14.270 --> 00:02:17.986
If you train alpha mode for the game of golf

40
00:02:17.986 --> 00:02:21.236
and if you take it to a different game,

41
00:02:22.669 --> 00:02:26.586
say chess, then alpha mode cannot adapt itself.

42
00:02:28.698 --> 00:02:30.115
At least not yet.

43
00:02:31.040 --> 00:02:34.290
At least not without transfer learning.

44
00:02:35.859 --> 00:02:38.122
So what is transfer learning?

45
00:02:38.122 --> 00:02:41.381
Transfer learning is our ability to adapt

46
00:02:41.381 --> 00:02:43.548
from one skill to another.

47
00:02:44.800 --> 00:02:49.221
So, for example, as humans we learn how to ride bicycles.

48
00:02:49.221 --> 00:02:51.840
So we find it very easy to adapt

49
00:02:51.840 --> 00:02:55.090
and go riding a scooter, or motorcycle.

50
00:02:56.158 --> 00:02:59.145
By the way, this is transfer learning in Chinese.

51
00:02:59.145 --> 00:02:59.978
(audience laughs)

52
00:02:59.978 --> 00:03:03.522
So enjoy that, I bet you can figure that out.

53
00:03:03.522 --> 00:03:07.689
Okay, transfer learning is not yet as hot as deep learning.

54
00:03:10.565 --> 00:03:12.732
But it will not take long.

55
00:03:14.484 --> 00:03:18.462
Okay so recently some leaders, like Andrew Yayman

56
00:03:18.462 --> 00:03:21.567
has openly spoken about transfer learning as being

57
00:03:21.567 --> 00:03:24.217
maybe the next big thing after deep learning.

58
00:03:24.217 --> 00:03:26.777
Okay so this is currently is working.

59
00:03:26.777 --> 00:03:28.944
We are along the timeline,

60
00:03:30.446 --> 00:03:33.779
the next curve to rise is mark transfer,

61
00:03:35.126 --> 00:03:37.485
and there is reason you're going to,

62
00:03:37.485 --> 00:03:40.707
so how I will explain that is

63
00:03:40.707 --> 00:03:43.485
if you really want to find about transfer learning,

64
00:03:43.485 --> 00:03:45.902
you can check Google Scholar.

65
00:03:47.427 --> 00:03:51.177
So this is a recent chapter on Google Scholar

66
00:03:52.408 --> 00:03:55.128
run by the number of citations.

67
00:03:55.128 --> 00:03:59.347
The first in the list is a paper written by my student

68
00:03:59.347 --> 00:04:03.111
and I, my study on transfer learning.

69
00:04:03.111 --> 00:04:07.191
Currently has more than 3000 citations.

70
00:04:07.191 --> 00:04:10.311
The second one was written by Andrew Yayman,

71
00:04:10.311 --> 00:04:13.468
and students on self-taught learning,

72
00:04:13.468 --> 00:04:16.164
and the third one was again written by

73
00:04:16.164 --> 00:04:19.351
a student of mine and myself,

74
00:04:19.351 --> 00:04:22.246
whom has boosting transfer learning,

75
00:04:22.246 --> 00:04:25.944
and this one has over 1000 citations today

76
00:04:25.944 --> 00:04:28.209
and rising quickly.

77
00:04:28.209 --> 00:04:30.247
Okay so the reason why I'm showing this

78
00:04:30.247 --> 00:04:34.414
is because I want to share the excitement with you.

79
00:04:35.751 --> 00:04:40.449
This transfer medium is catching a lot of attention.

80
00:04:40.449 --> 00:04:41.969
Particularly due to

81
00:04:41.969 --> 00:04:45.052
apparent limitations of the learning.

82
00:04:45.944 --> 00:04:48.986
So what are some of the limitations of deep learning?

83
00:04:48.986 --> 00:04:50.069
First of all,

84
00:04:51.021 --> 00:04:53.247
let me look around, especially

85
00:04:53.247 --> 00:04:54.747
in every day life.

86
00:04:55.944 --> 00:04:58.745
Not very often do we have big data.

87
00:04:58.745 --> 00:05:01.900
We often have small data, small amounts of data.

88
00:05:01.900 --> 00:05:05.733
They are sparse, sparsely labeled, annotation,

89
00:05:07.140 --> 00:05:09.428
deal with a lot of noise,

90
00:05:09.428 --> 00:05:10.792
a lot of unlabeled data.

91
00:05:10.792 --> 00:05:12.959
So when we take a big data

92
00:05:13.853 --> 00:05:15.353
and train a model,

93
00:05:16.232 --> 00:05:19.565
we wish to expand, to generalize in fact

94
00:05:21.213 --> 00:05:25.053
that model to (mumbles) or related to

95
00:05:25.053 --> 00:05:26.866
where there is only small data,

96
00:05:26.866 --> 00:05:30.251
and we wish that model to still work.

97
00:05:30.251 --> 00:05:32.690
Okay so this is a practical concern,

98
00:05:32.690 --> 00:05:34.506
we need this training when you look

99
00:05:34.506 --> 00:05:36.589
at so, for example

100
00:05:36.589 --> 00:05:38.669
medical imaging.

101
00:05:38.669 --> 00:05:41.532
So we did a recent survey in order to

102
00:05:41.532 --> 00:05:45.532
find a student of mine a feasible research topic

103
00:05:46.893 --> 00:05:47.893
for his PhD.

104
00:05:49.430 --> 00:05:52.345
And we collected all sorts of collected data,

105
00:05:52.345 --> 00:05:56.109
we found only donates maybe four or 500,

106
00:05:56.109 --> 00:05:58.359
at most 600 labeled images,

107
00:06:01.328 --> 00:06:06.072
and anything beyond that is beyond public reach.

108
00:06:06.072 --> 00:06:07.248
Of course there are hospitals,

109
00:06:07.248 --> 00:06:10.792
they are 10s of thousands, but they are not in this number.

110
00:06:10.792 --> 00:06:14.189
In education, it is another area where

111
00:06:14.189 --> 00:06:16.439
the interaction so a recent

112
00:06:17.293 --> 00:06:20.543
instructor said she had 20,000 students

113
00:06:23.752 --> 00:06:27.373
in his class, and he was very excited,

114
00:06:27.373 --> 00:06:29.213
though when we looked at the interaction

115
00:06:29.213 --> 00:06:31.389
between him and his students,

116
00:06:31.389 --> 00:06:33.410
the data is extremely sparse,

117
00:06:33.410 --> 00:06:37.030
can not be used to train an automated chat bot.

118
00:06:37.030 --> 00:06:41.197
So these are examples we are frustration came from.

119
00:06:42.173 --> 00:06:43.773
Another reason for

120
00:06:43.773 --> 00:06:47.356
motivation for transfer learning is because

121
00:06:48.435 --> 00:06:51.018
unlike suffer generic practice,

122
00:06:51.934 --> 00:06:54.869
many learning researchers do not pay attention

123
00:06:54.869 --> 00:06:57.492
to reliability in their analysis.

124
00:06:57.492 --> 00:07:00.169
When you have a mission critical software

125
00:07:00.169 --> 00:07:02.885
such as a statistical model and

126
00:07:02.885 --> 00:07:06.727
when you tweak the other level data a little bit,

127
00:07:06.727 --> 00:07:08.699
when you tweak the model at the end of it,

128
00:07:08.699 --> 00:07:11.600
it often fails, there is a dramatic drop in performance,

129
00:07:11.600 --> 00:07:15.398
and this is not acceptable, in the real world.

130
00:07:15.398 --> 00:07:17.596
So we wish to extend the model to

131
00:07:17.596 --> 00:07:21.339
other situations, neighboring situations

132
00:07:21.339 --> 00:07:24.074
by changing the environment by data.

133
00:07:24.074 --> 00:07:28.518
We don't want the environment, the model to change,

134
00:07:28.518 --> 00:07:30.185
a exponent of delta.

135
00:07:31.456 --> 00:07:35.994
And finally, we are in the era of personalization.

136
00:07:35.994 --> 00:07:38.391
Everybody carries a mobile phone,

137
00:07:38.391 --> 00:07:41.035
we look at news on the mobile phone,

138
00:07:41.035 --> 00:07:45.202
we talk to people, so we wish the phone to know us.

139
00:07:46.572 --> 00:07:48.454
Now how do you do that?

140
00:07:48.454 --> 00:07:52.075
How do you ensure that a recomender system

141
00:07:52.075 --> 00:07:55.872
operating on the phone to know about you?

142
00:07:55.872 --> 00:07:57.216
Well,

143
00:07:57.216 --> 00:08:01.571
our current way is to upload our data to the cloud.

144
00:08:01.571 --> 00:08:04.654
And like the machine train the system

145
00:08:05.952 --> 00:08:08.752
with our preferences, with our bias,

146
00:08:08.752 --> 00:08:12.588
and then download the resulting for our phone.

147
00:08:12.588 --> 00:08:17.355
So this process actually leaks our data to the cloud.

148
00:08:17.355 --> 00:08:20.091
So when you are very concerned about privacy,

149
00:08:20.091 --> 00:08:22.454
this could be a problem.

150
00:08:22.454 --> 00:08:25.675
Now on the alternative is to train a

151
00:08:25.675 --> 00:08:28.773
universal model in the cloud,

152
00:08:28.773 --> 00:08:32.155
and download that model to your phone,

153
00:08:32.155 --> 00:08:35.070
and having adaptive right on your phone.

154
00:08:35.070 --> 00:08:36.451
Imagine your phone we can't

155
00:08:36.451 --> 00:08:39.691
ever more horrible in the future.

156
00:08:39.691 --> 00:08:44.411
So between the expectation can be done on your phone.

157
00:08:44.411 --> 00:08:46.371
And in the whole process, there is no

158
00:08:46.371 --> 00:08:50.752
bidirectional movement of the personal data.

159
00:08:50.752 --> 00:08:52.976
That's protected in the environment.

160
00:08:52.976 --> 00:08:55.595
So we are working on a model of test

161
00:08:55.595 --> 00:08:59.595
to really solve this privacy issue on its route.

162
00:09:03.275 --> 00:09:06.133
But when you work on transfer learning,

163
00:09:06.133 --> 00:09:07.296
you know it's very hard.

164
00:09:07.296 --> 00:09:09.456
So I took this slide actually from,

165
00:09:09.456 --> 00:09:12.812
from the web, somebody has already made this slide,

166
00:09:12.812 --> 00:09:15.275
not from learning, not from mission learning,

167
00:09:15.275 --> 00:09:18.678
this slide came from education psychology.

168
00:09:18.678 --> 00:09:20.845
In the field of education.

169
00:09:22.795 --> 00:09:25.174
This term called the learning transfer

170
00:09:25.174 --> 00:09:28.918
has been a (mumbles) over the years.

171
00:09:28.918 --> 00:09:31.718
Where people have, there's a branch of this

172
00:09:31.718 --> 00:09:34.971
education theory that believes that

173
00:09:34.971 --> 00:09:38.832
the metric to measure whether a teacher

174
00:09:38.832 --> 00:09:42.672
is good is when the student of that teacher

175
00:09:42.672 --> 00:09:44.533
can easily adapt.

176
00:09:44.533 --> 00:09:46.695
From one area to another.

177
00:09:46.695 --> 00:09:48.853
From one class to another.

178
00:09:48.853 --> 00:09:51.974
From planning information also,

179
00:09:51.974 --> 00:09:53.952
data must be a good teacher.

180
00:09:53.952 --> 00:09:56.934
Learning transfer is such a measure,

181
00:09:56.934 --> 00:09:59.376
but okay it's the same idea,

182
00:09:59.376 --> 00:10:02.769
transfer learning, but it's hard.

183
00:10:02.769 --> 00:10:06.214
And the primary reason for why it's so hard

184
00:10:06.214 --> 00:10:09.232
is because when you compare two domains,

185
00:10:09.232 --> 00:10:11.712
and when you want to transfer knowledge from

186
00:10:11.712 --> 00:10:13.752
domain A to domain B,

187
00:10:13.752 --> 00:10:17.392
what we are doing is looking for your varied.

188
00:10:17.392 --> 00:10:19.712
We are looking with domains numbers,

189
00:10:19.712 --> 00:10:22.256
but those improvement number is

190
00:10:22.256 --> 00:10:26.155
looking for invariant in the programming property

191
00:10:26.155 --> 00:10:28.395
is a way to prove correctness,

192
00:10:28.395 --> 00:10:31.515
and here looking for invariant is a way to

193
00:10:31.515 --> 00:10:35.254
transfer knowledge, so maybe use this

194
00:10:35.254 --> 00:10:39.312
example which I personally experienced.

195
00:10:39.312 --> 00:10:42.075
If you drive in the US, it's like this,

196
00:10:42.075 --> 00:10:44.654
the driver is on the left hand side of the car.

197
00:10:44.654 --> 00:10:47.072
If you drive in mainland China, it is the same.

198
00:10:47.072 --> 00:10:49.814
Whereas, if you drive in UK,

199
00:10:49.814 --> 00:10:52.752
or if you drive in Hong Kong,

200
00:10:52.752 --> 00:10:55.152
the driver is on the other side,

201
00:10:55.152 --> 00:10:57.254
and I don't know how many of you have experienced

202
00:10:57.254 --> 00:10:59.611
of renting a car and start driving,

203
00:10:59.611 --> 00:11:03.028
and drive into trouble on the wrong side.

204
00:11:04.150 --> 00:11:07.150
I have, okay, it was very dangerous.

205
00:11:09.069 --> 00:11:12.988
But knowing transfer learning can save you.

206
00:11:12.988 --> 00:11:14.731
Thinking back,

207
00:11:14.731 --> 00:11:16.811
and the key is this.

208
00:11:16.811 --> 00:11:18.868
You look for the invariant.

209
00:11:18.868 --> 00:11:20.768
Now who can tell me what the invariant is

210
00:11:20.768 --> 00:11:22.768
from these two pictures?

211
00:11:26.330 --> 00:11:27.392
Okay.

212
00:11:27.392 --> 00:11:29.531
<v Audience Member>The rule that I was told was</v>

213
00:11:29.531 --> 00:11:33.291
you always keep the passenger side near the curb.

214
00:11:33.291 --> 00:11:34.928
<v ->That's right.</v>

215
00:11:34.928 --> 00:11:36.368
That's why you're still alive.

216
00:11:36.368 --> 00:11:38.790
(group laughs)

217
00:11:38.790 --> 00:11:40.832
I say that because Dave goes to,

218
00:11:40.832 --> 00:11:43.430
goes to Hong Kong all the time.

219
00:11:43.430 --> 00:11:44.491
Yes.

220
00:11:44.491 --> 00:11:46.241
Now so the invariant,

221
00:11:47.168 --> 00:11:49.392
the way we saying it is the driver is

222
00:11:49.392 --> 00:11:52.011
closest to the center of the road.

223
00:11:52.011 --> 00:11:55.691
Or the passenger side is always closest to the curb.

224
00:11:55.691 --> 00:11:59.206
If you do that, you switch immediately.

225
00:11:59.206 --> 00:12:02.011
And if a system can find that,

226
00:12:02.011 --> 00:12:04.091
this is the key to transfer learning.

227
00:12:04.091 --> 00:12:05.771
This is the invariant.

228
00:12:05.771 --> 00:12:10.091
So our job is to enable a system to do that.

229
00:12:10.091 --> 00:12:12.032
And so how is that done?

230
00:12:12.032 --> 00:12:15.768
And this picture on the right illustrates that.

231
00:12:15.768 --> 00:12:18.411
Let's say the green part is this one

232
00:12:18.411 --> 00:12:21.611
machine learning domain, and the red is another.

233
00:12:21.611 --> 00:12:24.848
This domain is known as the source domain.

234
00:12:24.848 --> 00:12:27.910
This is where you have a lot of data.

235
00:12:27.910 --> 00:12:30.066
This is new, the red is new.

236
00:12:30.066 --> 00:12:31.931
And now you know then how you can transfer

237
00:12:31.931 --> 00:12:34.514
much knowledge to the red part.

238
00:12:35.392 --> 00:12:38.294
And the key is to the find the knowledge

239
00:12:38.294 --> 00:12:41.494
that's invariant, that's common to

240
00:12:41.494 --> 00:12:43.275
both the red and the green,

241
00:12:43.275 --> 00:12:45.991
and then transfer it this way.

242
00:12:45.991 --> 00:12:47.776
And move the knowledge that way.

243
00:12:47.776 --> 00:12:50.176
So there are various ways to do this.

244
00:12:50.176 --> 00:12:52.656
And here is the simple summary

245
00:12:52.656 --> 00:12:54.323
for this small word.

246
00:12:56.475 --> 00:13:00.512
So the first, the green part says instance based approach.

247
00:13:00.512 --> 00:13:03.712
This is one class of algorithms that

248
00:13:03.712 --> 00:13:06.614
can look for this invariant.

249
00:13:06.614 --> 00:13:09.467
Another one is the less feature based approach.

250
00:13:09.467 --> 00:13:12.086
The third one is known as model based.

251
00:13:12.086 --> 00:13:14.586
And the last one is relational based approach.

252
00:13:14.586 --> 00:13:16.091
So these four approaches

253
00:13:16.091 --> 00:13:18.971
pretty much cover all methodologies

254
00:13:18.971 --> 00:13:21.304
in which transfer can occur.

255
00:13:22.427 --> 00:13:25.030
For example, for instance based approach,

256
00:13:25.030 --> 00:13:27.211
let's say you have lots of food halls

257
00:13:27.211 --> 00:13:29.044
from say the image net

258
00:13:30.283 --> 00:13:33.408
in the source domain with labels,

259
00:13:33.408 --> 00:13:36.150
and if you're only interested in a

260
00:13:36.150 --> 00:13:39.088
particular kind of pictures

261
00:13:39.088 --> 00:13:41.866
the instance based approach is to look for

262
00:13:41.866 --> 00:13:44.699
similar images to the target image

263
00:13:45.568 --> 00:13:47.371
and give them higher weight,

264
00:13:47.371 --> 00:13:51.488
and as a result, you boost the twinning data

265
00:13:51.488 --> 00:13:55.655
by making multiple copies of similar source images.

266
00:13:57.307 --> 00:14:00.230
So this is the idea behind the

267
00:14:00.230 --> 00:14:02.790
so-called instances based transfer.

268
00:14:02.790 --> 00:14:04.766
Whereas the feature based transfer

269
00:14:04.766 --> 00:14:06.868
is to compare the two domains

270
00:14:06.868 --> 00:14:09.535
and match both into a sub space,

271
00:14:10.571 --> 00:14:13.568
in that sub space, the two look exactly the same.

272
00:14:13.568 --> 00:14:14.401
Identical.

273
00:14:15.291 --> 00:14:17.611
You remove all the different features,

274
00:14:17.611 --> 00:14:19.472
and the result is the same.

275
00:14:19.472 --> 00:14:23.030
You can even extend this to an area where

276
00:14:23.030 --> 00:14:27.916
these two domains look like completely different.

277
00:14:27.916 --> 00:14:29.668
But they have similar meanings,

278
00:14:29.668 --> 00:14:31.152
so this is a Chinese poem,

279
00:14:31.152 --> 00:14:32.752
this is a Chinese painting,

280
00:14:32.752 --> 00:14:35.085
then express the same thing.

281
00:14:35.936 --> 00:14:39.574
Okay so far I think (mumbles) academic,

282
00:14:39.574 --> 00:14:41.574
and these are just maybe

283
00:14:44.251 --> 00:14:46.534
live on the research papers.

284
00:14:46.534 --> 00:14:48.614
But I should tell that transfer learning

285
00:14:48.614 --> 00:14:51.232
is already taking place in industry

286
00:14:51.232 --> 00:14:53.149
and making huge impact.

287
00:14:55.414 --> 00:14:57.051
So here is for example.

288
00:14:57.051 --> 00:14:59.392
Before we go into further detail,

289
00:14:59.392 --> 00:15:02.672
so this a company created by my student,

290
00:15:02.672 --> 00:15:05.072
it's in Beijing, it's called Four Paradigm.

291
00:15:05.072 --> 00:15:07.692
What it does is it does all sorts of

292
00:15:07.692 --> 00:15:09.654
question learning projects with tanks

293
00:15:09.654 --> 00:15:11.792
and financial institutions,

294
00:15:11.792 --> 00:15:13.788
and they have this particular problem

295
00:15:13.788 --> 00:15:15.455
of modeling credits,

296
00:15:17.696 --> 00:15:20.946
loan credits for buyers of luxury cars.

297
00:15:24.792 --> 00:15:27.532
Now as we know, luxury cars are sold

298
00:15:27.532 --> 00:15:30.532
to people with lots of money, right?

299
00:15:32.254 --> 00:15:34.430
And those people are very few,

300
00:15:34.430 --> 00:15:38.597
and so as a result, the samples are very scarce, very rare.

301
00:15:39.435 --> 00:15:41.709
And so we just need some host,

302
00:15:41.709 --> 00:15:46.123
build a credible model of luxury car purchases.

303
00:15:46.123 --> 00:15:49.515
So what they do is they go through small ones,

304
00:15:49.515 --> 00:15:52.736
and so called micro models where the loan

305
00:15:52.736 --> 00:15:55.832
is in the order of maybe a folder

306
00:15:55.832 --> 00:15:59.094
in 5,000 US dollars, X amount.

307
00:15:59.094 --> 00:16:03.536
And those loans can be in the order of 100 a year.

308
00:16:03.536 --> 00:16:07.798
Okay, so with that data you can build a model,

309
00:16:07.798 --> 00:16:09.876
but that model is for micro loans,

310
00:16:09.876 --> 00:16:12.278
so there is a difference between

311
00:16:12.278 --> 00:16:15.215
micro loans and large loans.

312
00:16:15.215 --> 00:16:17.873
Now transfer learning allows you to move

313
00:16:17.873 --> 00:16:20.614
that difference and look for what's common,

314
00:16:20.614 --> 00:16:22.934
and so by using this transfer learning

315
00:16:22.934 --> 00:16:27.101
they were able to increase the effect by 20%.

316
00:16:29.355 --> 00:16:34.096
So it was very effective and is being used by the bank.

317
00:16:34.096 --> 00:16:38.038
Now this is the first part of the talk,

318
00:16:38.038 --> 00:16:41.334
which is introducing what is transfer learning.

319
00:16:41.334 --> 00:16:44.496
The time of the talk is from transfer learning

320
00:16:44.496 --> 00:16:46.838
meets deep learning, so now we have to

321
00:16:46.838 --> 00:16:49.435
think of a word of deep learning.

322
00:16:49.435 --> 00:16:51.675
So first slide we give you the analogy

323
00:16:51.675 --> 00:16:55.592
of transfer learning used to be done like this,

324
00:16:56.736 --> 00:16:59.912
like building a one-story house

325
00:16:59.912 --> 00:17:02.245
in the Chinese architecture.

326
00:17:03.760 --> 00:17:06.598
But when you go deeper, you have multiple levels

327
00:17:06.598 --> 00:17:09.431
that brings extra elements, extra,

328
00:17:11.078 --> 00:17:15.054
so in other words, what you can achieve here

329
00:17:15.054 --> 00:17:19.238
you can achieve more, by being more qualitative.

330
00:17:19.238 --> 00:17:21.798
So here is the qualitative one.

331
00:17:21.798 --> 00:17:24.855
So let me give an illustration of that.

332
00:17:24.855 --> 00:17:28.772
So this a deep learning model turning sideways.

333
00:17:30.276 --> 00:17:32.678
So the input is here, the output is here,

334
00:17:32.678 --> 00:17:35.376
so this multiple layer is here.

335
00:17:35.376 --> 00:17:37.714
So roughly deep learning is doing

336
00:17:37.714 --> 00:17:40.219
not only transformation between layers,

337
00:17:40.219 --> 00:17:41.995
and using a museum or

338
00:17:41.995 --> 00:17:46.214
using Raspnet or whatever transformation,

339
00:17:46.214 --> 00:17:48.671
but the architecture looks like this.

340
00:17:48.671 --> 00:17:51.632
So let's say the blue is one domain

341
00:17:51.632 --> 00:17:53.574
where we have built a very credible,

342
00:17:53.574 --> 00:17:55.771
and reliable model.

343
00:17:55.771 --> 00:17:57.814
Now suppose we have a new domain,

344
00:17:57.814 --> 00:17:59.586
where we don't have so much data,

345
00:17:59.586 --> 00:18:02.171
but we built a rough model.

346
00:18:02.171 --> 00:18:04.838
So we are interested in how much

347
00:18:05.814 --> 00:18:08.454
knowledge in the blue domain have you transferred

348
00:18:08.454 --> 00:18:09.954
to the red domain.

349
00:18:10.934 --> 00:18:15.147
Now deep learning allows us to answer this question

350
00:18:15.147 --> 00:18:18.272
layer by layer, so we can ask how much is

351
00:18:18.272 --> 00:18:20.571
the first layer transferable.

352
00:18:20.571 --> 00:18:22.774
How much is the second layer transferable.

353
00:18:22.774 --> 00:18:24.912
Under what condition.

354
00:18:24.912 --> 00:18:26.512
In other words, we can

355
00:18:26.512 --> 00:18:31.264
for example, draw a relation between these corresponding

356
00:18:31.264 --> 00:18:35.910
layers, and we can ask what the differences are

357
00:18:35.910 --> 00:18:37.993
between these top layers.

358
00:18:38.832 --> 00:18:41.174
So these are known as domain distance,

359
00:18:41.174 --> 00:18:44.331
we can now finally ask about this distance

360
00:18:44.331 --> 00:18:45.792
layer by layer.

361
00:18:45.792 --> 00:18:50.048
So there is this recent paper by Benjamin Appo,

362
00:18:50.048 --> 00:18:53.467
they are asking exactly this question.

363
00:18:53.467 --> 00:18:56.800
So my student looked at this and thought

364
00:18:58.267 --> 00:19:00.587
"Hmm, what an interesting idea".

365
00:19:00.587 --> 00:19:04.502
And so what about other work that mixes

366
00:19:04.502 --> 00:19:07.008
transfer learning and deep learning together?

367
00:19:07.008 --> 00:19:10.987
First of all, do they give us an extra advantage

368
00:19:10.987 --> 00:19:12.987
in terms of performance?

369
00:19:14.006 --> 00:19:17.408
And so this is the result of her investigation.

370
00:19:17.408 --> 00:19:19.510
So around the horizontal axis,

371
00:19:19.510 --> 00:19:23.307
we have the year in which this work appears,

372
00:19:23.307 --> 00:19:27.004
and along the vertical axis we have the performance,

373
00:19:27.004 --> 00:19:30.208
so you can consider this as 70% accurate,

374
00:19:30.208 --> 00:19:33.697
and without looking in details in the domain,

375
00:19:33.697 --> 00:19:37.446
we realize that those red ones correspond to

376
00:19:37.446 --> 00:19:40.128
transfer learning plus deep learning,

377
00:19:40.128 --> 00:19:42.667
and they generally give you higher performance

378
00:19:42.667 --> 00:19:46.883
than those that use a single layer deep learning,

379
00:19:46.883 --> 00:19:49.467
transfer learning, so if you use transfer learning alone,

380
00:19:49.467 --> 00:19:51.526
so this for example, TCA,

381
00:19:51.526 --> 00:19:55.693
what's the result of another student of mine in 2011

382
00:19:56.550 --> 00:19:59.446
also highly cited near 1000 citations,

383
00:19:59.446 --> 00:20:03.446
but gradually the citation rate is slowing down.

384
00:20:05.105 --> 00:20:06.326
Why?

385
00:20:06.326 --> 00:20:08.368
Partly because he didn't use deep learning,

386
00:20:08.368 --> 00:20:10.925
and this work that appears, so for example

387
00:20:10.925 --> 00:20:14.784
this work is the result of Xing Mar researcher

388
00:20:14.784 --> 00:20:16.720
working in Berkeley.

389
00:20:16.720 --> 00:20:19.053
And the result is like this.

390
00:20:20.470 --> 00:20:24.387
Okay, the graph is very ugly and sophisticated.

391
00:20:25.771 --> 00:20:29.131
But you can try to understand it layer by layer.

392
00:20:29.131 --> 00:20:32.869
So first of all, the first layer is marked frozen.

393
00:20:32.869 --> 00:20:36.491
Frozen means from the source to the target,

394
00:20:36.491 --> 00:20:39.510
you transfer the whole thing as whole.

395
00:20:39.510 --> 00:20:41.494
You don't make any changes.

396
00:20:41.494 --> 00:20:45.014
The next several layers are more about fine-tuning.

397
00:20:45.014 --> 00:20:47.574
Fine-tuning is you allow the

398
00:20:47.574 --> 00:20:50.574
transfer to happen first as a whole,

399
00:20:52.534 --> 00:20:55.451
and then adjust it by later twists.

400
00:20:56.809 --> 00:20:59.931
And the last several layers are marked with

401
00:20:59.931 --> 00:21:02.326
this called MK and MB,

402
00:21:02.326 --> 00:21:05.531
which is the distance measure based on

403
00:21:05.531 --> 00:21:07.448
multiple distributions,

404
00:21:08.924 --> 00:21:10.953
from unity distributions,

405
00:21:10.953 --> 00:21:12.852
and formulated is rated here.

406
00:21:12.852 --> 00:21:15.691
You're using kernels to measure the distribution

407
00:21:15.691 --> 00:21:19.435
and judge how much difference should we allow

408
00:21:19.435 --> 00:21:21.602
these two domains to have.

409
00:21:23.030 --> 00:21:25.894
And these correspond to their final tasks.

410
00:21:25.894 --> 00:21:29.291
So they are treated differently according to

411
00:21:29.291 --> 00:21:30.708
different layers.

412
00:21:32.315 --> 00:21:36.108
And so this exactly the idea when we go a step further

413
00:21:36.108 --> 00:21:39.355
in terms of studying how transferable

414
00:21:39.355 --> 00:21:40.855
these domains are.

415
00:21:41.691 --> 00:21:43.232
These are three domains,

416
00:21:43.232 --> 00:21:45.210
this one is from Amazon, you can see

417
00:21:45.210 --> 00:21:47.675
Amazon has taken out of the background

418
00:21:47.675 --> 00:21:51.470
in order not to let people copy from their images,

419
00:21:51.470 --> 00:21:54.970
and these are from webcam and other means.

420
00:21:56.331 --> 00:22:00.155
Then people have studied, so this work

421
00:22:00.155 --> 00:22:04.322
titled all transferable features in the depper networks

422
00:22:05.291 --> 00:22:07.392
which appear in number 14,

423
00:22:07.392 --> 00:22:10.007
quantitative study, layer by layer,

424
00:22:10.007 --> 00:22:12.715
so this one is the first later, second layer,

425
00:22:12.715 --> 00:22:14.715
this is the last layer.

426
00:22:14.715 --> 00:22:17.771
And there are several conclusions you can draw.

427
00:22:17.771 --> 00:22:21.249
The first one is that as you go deeper and deeper,

428
00:22:21.249 --> 00:22:25.026
the transfer of data actually goes down.

429
00:22:25.026 --> 00:22:28.630
So that means on these vision based domains,

430
00:22:28.630 --> 00:22:30.683
lower levels represent more general

431
00:22:30.683 --> 00:22:34.850
and more transferable, and more invariant features.

432
00:22:35.904 --> 00:22:39.744
The second conclusion is that if you allow

433
00:22:39.744 --> 00:22:41.823
things to change a little bit,

434
00:22:41.823 --> 00:22:43.573
so instead of frozen,

435
00:22:44.543 --> 00:22:47.442
you allow some fine tuning to happen,

436
00:22:47.442 --> 00:22:50.442
then this performance can come back.

437
00:22:51.744 --> 00:22:54.683
So the last one is when you really

438
00:22:54.683 --> 00:22:57.977
pull these two domains that are far from each other,

439
00:22:57.977 --> 00:22:59.980
that the performance can quickly go down,

440
00:22:59.980 --> 00:23:04.262
so this idea of a deep learning and transfer

441
00:23:04.262 --> 00:23:07.012
together have to really watch out

442
00:23:08.380 --> 00:23:11.441
for the original distance between them.

443
00:23:11.441 --> 00:23:14.078
So based on this quantitative knowledge

444
00:23:14.078 --> 00:23:17.660
we can then design a field engineering solutions.

445
00:23:17.660 --> 00:23:19.804
The first engineering solution is

446
00:23:19.804 --> 00:23:22.241
what we have unsupervised data.

447
00:23:22.241 --> 00:23:25.761
So we have unsupervised data in the source domain

448
00:23:25.761 --> 00:23:28.342
we have unsupervised data, in the target domain,

449
00:23:28.342 --> 00:23:30.620
can we do a transfer?

450
00:23:30.620 --> 00:23:34.044
And so the idea is you can partition

451
00:23:34.044 --> 00:23:35.862
the layers into two parts,

452
00:23:35.862 --> 00:23:37.916
the first part is known as frozen

453
00:23:37.916 --> 00:23:42.044
or protected, and the second is called adaptation,

454
00:23:42.044 --> 00:23:44.211
and here you can write the

455
00:23:45.462 --> 00:23:47.795
loss in terms of two losses,

456
00:23:48.839 --> 00:23:51.339
one is the loss on the source,

457
00:23:52.486 --> 00:23:55.766
and another one is on the target,

458
00:23:55.766 --> 00:23:59.185
and the laws can be described using any number

459
00:23:59.185 --> 00:24:02.784
of these loses, one is called discrepancy loss,

460
00:24:02.784 --> 00:24:05.622
and serial loss, or reconstruction loss.

461
00:24:05.622 --> 00:24:08.044
And not going into details of this,

462
00:24:08.044 --> 00:24:11.799
but these are engineering tools you can use.

463
00:24:11.799 --> 00:24:15.585
Now once you have an additional label data,

464
00:24:15.585 --> 00:24:19.126
say in the source domain then you can introduce

465
00:24:19.126 --> 00:24:22.065
another loss which represents the loss in

466
00:24:22.065 --> 00:24:24.982
the source domain, this one source.

467
00:24:27.686 --> 00:24:30.178
And so this additional domain can be

468
00:24:30.178 --> 00:24:31.678
an extra guidance.

469
00:24:32.662 --> 00:24:35.605
So the final picture that looks this.

470
00:24:35.605 --> 00:24:40.326
A domain, a source domain that can reconstruct itself,

471
00:24:40.326 --> 00:24:43.617
a critical domain that can reconstruct itself,

472
00:24:43.617 --> 00:24:47.142
and some paired loss if you have a mixture

473
00:24:47.142 --> 00:24:49.021
of the source and the target,

474
00:24:49.021 --> 00:24:53.046
say you have a picture with some words in it,

475
00:24:53.046 --> 00:24:55.481
these are pictures, these are words,

476
00:24:55.481 --> 00:24:58.342
and this pair loss represents how much

477
00:24:58.342 --> 00:25:00.675
of that you can reconstruct.

478
00:25:02.225 --> 00:25:05.644
So this corresponds to the traditional,

479
00:25:05.644 --> 00:25:09.319
so called multi-model, in other words

480
00:25:09.319 --> 00:25:13.004
you have images and words mixed together.

481
00:25:13.004 --> 00:25:15.587
And you can handle all of this.

482
00:25:16.884 --> 00:25:19.964
Okay, so far we've talked about

483
00:25:19.964 --> 00:25:23.744
how to measure the differences between two domains,

484
00:25:23.744 --> 00:25:27.102
how when we have deep learning architecture,

485
00:25:27.102 --> 00:25:30.284
how to transfer from a source to target,

486
00:25:30.284 --> 00:25:32.364
while giving different losses

487
00:25:32.364 --> 00:25:35.142
to be represented in organization

488
00:25:35.142 --> 00:25:39.206
to make use of this connotative knowledge.

489
00:25:39.206 --> 00:25:41.302
Now we go into some more interesting

490
00:25:41.302 --> 00:25:45.469
topics once we can build (mumbles) together.

491
00:25:49.222 --> 00:25:53.503
The first one is in traditional transfer learning,

492
00:25:53.503 --> 00:25:56.166
people have only considered two domains.

493
00:25:56.166 --> 00:25:59.083
A source domain and a target domain,

494
00:25:59.083 --> 00:26:01.324
and wonder how to transfer from this

495
00:26:01.324 --> 00:26:02.945
source to the target.

496
00:26:02.945 --> 00:26:06.044
Now if we are in this model,

497
00:26:06.044 --> 00:26:09.505
we can think of not just one domain,

498
00:26:09.505 --> 00:26:12.763
so what if these two domains are from each other?

499
00:26:12.763 --> 00:26:14.487
If they are far then

500
00:26:14.487 --> 00:26:17.665
people in transfer learning said you can not transfer.

501
00:26:17.665 --> 00:26:20.402
But what if you have some stepping stones?

502
00:26:20.402 --> 00:26:23.905
You have some intermediate domains like this?

503
00:26:23.905 --> 00:26:25.843
So you have a source domain

504
00:26:25.843 --> 00:26:27.686
that's far from the target domain,

505
00:26:27.686 --> 00:26:29.905
but you can find that the field

506
00:26:29.905 --> 00:26:32.486
intermediate domains that take you from

507
00:26:32.486 --> 00:26:34.153
the original target.

508
00:26:35.564 --> 00:26:38.601
And this is exactly what is still

509
00:26:38.601 --> 00:26:41.527
in the series of publications,

510
00:26:41.527 --> 00:26:44.705
so let me show you the architecture for that.

511
00:26:44.705 --> 00:26:47.686
So the idea is you have a source domain,

512
00:26:47.686 --> 00:26:48.982
you have a target domain,

513
00:26:48.982 --> 00:26:50.966
say that as a source code it may be

514
00:26:50.966 --> 00:26:52.966
a bunch of text documents,

515
00:26:52.966 --> 00:26:55.985
the target domain is a bunch of images,

516
00:26:55.985 --> 00:27:00.276
so there's no way for the text to affect the image.

517
00:27:00.276 --> 00:27:02.999
But you have a number of intermediate domains,

518
00:27:02.999 --> 00:27:06.578
some mixture of text and images appear

519
00:27:06.578 --> 00:27:10.519
in this intermediate domains that can pull together

520
00:27:10.519 --> 00:27:12.602
in a chain of collection.

521
00:27:14.835 --> 00:27:16.935
So like building a bridge.

522
00:27:16.935 --> 00:27:19.218
So for this we can deal with the deep learning

523
00:27:19.218 --> 00:27:21.473
architecture, and we can feed it

524
00:27:21.473 --> 00:27:25.190
source they have intermediate data,

525
00:27:25.190 --> 00:27:28.809
and some target data, some target data with label.

526
00:27:28.809 --> 00:27:32.550
And in the process, we want to make sure that

527
00:27:32.550 --> 00:27:35.800
in this training we reconstruct source,

528
00:27:37.171 --> 00:27:39.553
intermediate and target at the same time,

529
00:27:39.553 --> 00:27:41.233
we'll pull together source and target

530
00:27:41.233 --> 00:27:43.414
by the means of intermediate.

531
00:27:43.414 --> 00:27:45.590
So whatever intermediate can do

532
00:27:45.590 --> 00:27:49.596
to pull us together will show up in a classifier

533
00:27:49.596 --> 00:27:52.263
to have the correct performance.

534
00:27:53.574 --> 00:27:56.532
And when that happens, we add a weight

535
00:27:56.532 --> 00:27:59.782
to an actual weight to the source data.

536
00:28:02.236 --> 00:28:05.377
And so eventually when this system is trained,

537
00:28:05.377 --> 00:28:08.636
we will have a well performed classifier

538
00:28:08.636 --> 00:28:12.934
based on the (mumbles) in the immediate data.

539
00:28:12.934 --> 00:28:16.800
Okay, so by means of just feeding this together,

540
00:28:16.800 --> 00:28:20.050
we can have this stepping stone effect.

541
00:28:22.731 --> 00:28:24.452
Now how well does this do?

542
00:28:24.452 --> 00:28:28.054
There are various tests that my student has come through,

543
00:28:28.054 --> 00:28:30.454
but recently we found this other work

544
00:28:30.454 --> 00:28:34.294
which is highly related to being very interesting,

545
00:28:34.294 --> 00:28:36.273
and the work actually came from

546
00:28:36.273 --> 00:28:40.273
a joint work between staffer and United Nations.

547
00:28:41.531 --> 00:28:44.453
And what they tried to do is they take

548
00:28:44.453 --> 00:28:47.957
satellite images of the African continent.

549
00:28:47.957 --> 00:28:50.656
And from this image they try to

550
00:28:50.656 --> 00:28:52.656
infer the poverty level.

551
00:28:54.576 --> 00:28:57.413
So knowing the poverty level of region

552
00:28:57.413 --> 00:29:00.663
allows them to decide on support policy

553
00:29:03.274 --> 00:29:05.857
in order to give different area

554
00:29:06.973 --> 00:29:09.536
a different type of aid.

555
00:29:09.536 --> 00:29:12.096
So before this was done by sending

556
00:29:12.096 --> 00:29:15.156
investigators to the (mumbles),

557
00:29:15.156 --> 00:29:16.896
and investigating which region in turn

558
00:29:16.896 --> 00:29:19.813
and can be both costly and lengthy

559
00:29:19.813 --> 00:29:20.980
and dangerous.

560
00:29:22.597 --> 00:29:25.253
So now the question is can we just

561
00:29:25.253 --> 00:29:27.994
take a satellite picture and

562
00:29:27.994 --> 00:29:31.088
immediately come up with an answer?

563
00:29:31.088 --> 00:29:33.237
Okay, well, you can't.

564
00:29:33.237 --> 00:29:35.632
Because these are unlabeled.

565
00:29:35.632 --> 00:29:37.754
But you can be smarter.

566
00:29:37.754 --> 00:29:39.792
You can take the same region,

567
00:29:39.792 --> 00:29:42.130
you can take a picture at night.

568
00:29:42.130 --> 00:29:46.496
And the night picture are illuminated with lights,

569
00:29:46.496 --> 00:29:49.376
and usually we understand the lights represent,

570
00:29:49.376 --> 00:29:52.512
the amount of light represents

571
00:29:52.512 --> 00:29:55.777
the amount of economic development.

572
00:29:55.777 --> 00:29:59.354
So this gives you a first hand rough idea,

573
00:29:59.354 --> 00:30:02.133
but that how do you segment is,

574
00:30:02.133 --> 00:30:04.633
this can come from image pact.

575
00:30:05.776 --> 00:30:10.335
If we learn a good image segmentation so far,

576
00:30:10.335 --> 00:30:13.034
we can use that, we can use that model

577
00:30:13.034 --> 00:30:16.432
to segment the images, the light images,

578
00:30:16.432 --> 00:30:18.816
and then we can in turn use the light images

579
00:30:18.816 --> 00:30:21.893
to help label the date images,

580
00:30:21.893 --> 00:30:24.427
and if you keep doing this and train

581
00:30:24.427 --> 00:30:27.813
a little bit of label data, then eventually

582
00:30:27.813 --> 00:30:29.952
we get a pretty good result.

583
00:30:29.952 --> 00:30:31.708
And the result shows that

584
00:30:31.708 --> 00:30:34.234
using the transfer learning, they get

585
00:30:34.234 --> 00:30:37.067
71.6% accuracy, as opposed to

586
00:30:38.133 --> 00:30:40.383
75.4 using the human labor,

587
00:30:41.632 --> 00:30:44.192
which is already getting close.

588
00:30:44.192 --> 00:30:48.256
So we are quite happy that somebody else did this work

589
00:30:48.256 --> 00:30:51.089
shows the transitive method works.

590
00:30:52.794 --> 00:30:55.868
The second occupation which is pretty interesting

591
00:30:55.868 --> 00:30:59.468
is in sentiment practical application.

592
00:30:59.468 --> 00:31:02.689
So the type of it is quite long.

593
00:31:02.689 --> 00:31:05.089
And you state the title and just,

594
00:31:05.089 --> 00:31:07.424
I can tell you what it tries to do.

595
00:31:07.424 --> 00:31:11.091
So those ecommerce to allow users to comment

596
00:31:11.987 --> 00:31:14.647
on different products,

597
00:31:14.647 --> 00:31:18.110
so these comments can be "one of the best

598
00:31:18.110 --> 00:31:21.209
"novels written by this author",

599
00:31:21.209 --> 00:31:23.331
"excellent", "I was disappointed".

600
00:31:23.331 --> 00:31:25.054
So things like that, right?

601
00:31:25.054 --> 00:31:27.857
So we have for different vertical domains

602
00:31:27.857 --> 00:31:30.357
say on Amazon or Chinese Baba,

603
00:31:32.118 --> 00:31:36.096
we can have a huge collection of these comments,

604
00:31:36.096 --> 00:31:39.020
and each one is about a particular product

605
00:31:39.020 --> 00:31:41.372
in that particular domain.

606
00:31:41.372 --> 00:31:42.814
So the question is,

607
00:31:42.814 --> 00:31:45.418
suppose we have built a credible model

608
00:31:45.418 --> 00:31:48.200
for say like products that's how much of

609
00:31:48.200 --> 00:31:52.367
that is applicable to an entirely different product.

610
00:31:53.286 --> 00:31:55.564
So if you take that model as is

611
00:31:55.564 --> 00:31:58.731
and apply it to comments of say emails

612
00:32:01.702 --> 00:32:05.084
and dramatically, we can see a downturn

613
00:32:05.084 --> 00:32:08.044
in terms of performance, right?

614
00:32:08.044 --> 00:32:10.683
That's readable because they use different

615
00:32:10.683 --> 00:32:13.850
terminology to describe the sentiment.

616
00:32:15.302 --> 00:32:18.541
So this is illustrated more clearly here,

617
00:32:18.541 --> 00:32:21.185
so this column here corresponds to

618
00:32:21.185 --> 00:32:23.484
the electronics domain where as this one,

619
00:32:23.484 --> 00:32:25.521
the video game domain.

620
00:32:25.521 --> 00:32:28.076
Here we have labels, we have done up and down,

621
00:32:28.076 --> 00:32:31.344
and here we don't have any labels and our task

622
00:32:31.344 --> 00:32:35.244
is to predict the labels on this side.

623
00:32:35.244 --> 00:32:38.044
But if you just read this carefully

624
00:32:38.044 --> 00:32:41.164
we can find that they are all using different terminologies,

625
00:32:41.164 --> 00:32:45.200
like this one says, unit, this one says picture quality.

626
00:32:45.200 --> 00:32:47.515
Whereas here it says, hoot,

627
00:32:47.515 --> 00:32:48.932
this says "Part".

628
00:32:50.123 --> 00:32:54.059
So they don't correspond to each other.

629
00:32:54.059 --> 00:32:57.240
But if we look even more carefully

630
00:32:57.240 --> 00:33:01.718
we can find some words that are domain invariant.

631
00:33:01.718 --> 00:33:03.883
Remember at the beginning of the talk

632
00:33:03.883 --> 00:33:06.827
I was talking about looking for the invariant

633
00:33:06.827 --> 00:33:08.784
as they key of transfer learning,

634
00:33:08.784 --> 00:33:12.534
so this red marked words import are invariant

635
00:33:14.027 --> 00:33:16.643
between domains, like "good" and

636
00:33:16.643 --> 00:33:18.886
"Good" here means positive sentiment.

637
00:33:18.886 --> 00:33:22.906
"Excited", and "excitement" means positive sentiment.

638
00:33:22.906 --> 00:33:26.603
So these words that are indifferent to the domains

639
00:33:26.603 --> 00:33:30.520
and yet reveal sentiment, known as pivot words,

640
00:33:31.452 --> 00:33:34.434
because they connect different domains.

641
00:33:34.434 --> 00:33:36.934
So okay, this gives us a hint,

642
00:33:37.890 --> 00:33:40.697
if you can find enough pivot words,

643
00:33:40.697 --> 00:33:43.715
then we can easily transfer the sentiment

644
00:33:43.715 --> 00:33:46.039
model from one domain to the next.

645
00:33:46.039 --> 00:33:48.620
So finding the keyword is the key.

646
00:33:48.620 --> 00:33:51.796
But how are people making use of the pivot?

647
00:33:51.796 --> 00:33:54.837
About 10 years ago there has been

648
00:33:54.837 --> 00:33:56.999
two pieces of important work.

649
00:33:56.999 --> 00:34:00.502
One was by this guy called John Blizzard.

650
00:34:00.502 --> 00:34:03.256
I will explain, he was a researcher at

651
00:34:03.256 --> 00:34:07.423
Microsoft Research, and he actually spoke fluent Chinese.

652
00:34:08.312 --> 00:34:11.452
He worked in Beijing at Microsoft Research for a while,

653
00:34:11.452 --> 00:34:12.869
so we talk a lot.

654
00:34:15.327 --> 00:34:19.524
And his method was considered state of the art at that time.

655
00:34:19.524 --> 00:34:22.484
But there was on drawback, which is

656
00:34:22.484 --> 00:34:26.401
he relied on people to pick out the pivot word,

657
00:34:28.308 --> 00:34:30.226
so it's totally manual.

658
00:34:30.226 --> 00:34:32.143
And because of this,

659
00:34:32.143 --> 00:34:34.124
it's very hard to scale.

660
00:34:34.124 --> 00:34:37.206
Then a student of mine turned at home,

661
00:34:37.206 --> 00:34:39.547
they started using automatic method

662
00:34:39.547 --> 00:34:42.309
to find what pivot, but it's very rough,

663
00:34:42.309 --> 00:34:45.347
you loose class treatment, spectral class treatment

664
00:34:45.347 --> 00:34:47.110
at each level.

665
00:34:47.110 --> 00:34:49.643
Now recently a group of deep learning researchers

666
00:34:49.643 --> 00:34:52.482
started looking at this and building

667
00:34:52.482 --> 00:34:54.685
the so-called black box model.

668
00:34:54.685 --> 00:34:57.085
They can make very accurate predictions

669
00:34:57.085 --> 00:35:01.245
of sentiment in one domain, but to transfer

670
00:35:01.245 --> 00:35:02.828
is still very hard.

671
00:35:04.642 --> 00:35:07.682
To transfer between domains is still very hard.

672
00:35:07.682 --> 00:35:09.598
Now when they can do the transfer,

673
00:35:09.598 --> 00:35:12.397
they can not pick out the pivot words,

674
00:35:12.397 --> 00:35:16.322
plus the models are not very explainable,

675
00:35:16.322 --> 00:35:18.942
so earlier I was talking to students

676
00:35:18.942 --> 00:35:21.841
and I was saying that one of today's

677
00:35:21.841 --> 00:35:24.258
trends in deep learning is to

678
00:35:25.346 --> 00:35:30.242
come up with explainable models, explainable terminology.

679
00:35:30.242 --> 00:35:32.264
So then what do we do?

680
00:35:32.264 --> 00:35:34.525
Well we have two goals in mind.

681
00:35:34.525 --> 00:35:35.358
One is

682
00:35:36.664 --> 00:35:38.946
in each domain you want to find

683
00:35:38.946 --> 00:35:42.765
the pivot so that the models are very accurate.

684
00:35:42.765 --> 00:35:46.722
So usually with the sentiment has very high accuracy,

685
00:35:46.722 --> 00:35:49.305
so that's our number gone goal.

686
00:35:50.226 --> 00:35:53.426
Number two goal is we want to find the word

687
00:35:53.426 --> 00:35:57.624
that are invariant and different to the domains.

688
00:35:57.624 --> 00:36:00.562
So those words which we use to build the model

689
00:36:00.562 --> 00:36:03.862
have to be accurate in its home domain

690
00:36:03.862 --> 00:36:07.518
and have to be inaccurate when it becomes

691
00:36:07.518 --> 00:36:10.297
to distinguish between the two domains.

692
00:36:10.297 --> 00:36:12.974
Okay so have to be, these words have to be

693
00:36:12.974 --> 00:36:16.174
blind to the domain difference and have to be

694
00:36:16.174 --> 00:36:19.118
very sharp as to telling the positive

695
00:36:19.118 --> 00:36:21.358
from the negative.

696
00:36:21.358 --> 00:36:22.894
Okay so two things:

697
00:36:22.894 --> 00:36:25.233
now while we have these two things,

698
00:36:25.233 --> 00:36:27.653
it's almost like playing a game,

699
00:36:27.653 --> 00:36:29.209
playing a chess game.

700
00:36:29.209 --> 00:36:31.050
Somebody wants to maximize the score

701
00:36:31.050 --> 00:36:35.681
while another person tries to minimize the score.

702
00:36:35.681 --> 00:36:38.441
So the question is can we use this mechanism

703
00:36:38.441 --> 00:36:39.774
to build a game?

704
00:36:41.702 --> 00:36:43.185
And the answer is yes.

705
00:36:43.185 --> 00:36:45.201
And yet we have a third constraint,

706
00:36:45.201 --> 00:36:48.081
which is we want the system to be a white box,

707
00:36:48.081 --> 00:36:51.265
we want it to tell us which words they are,

708
00:36:51.265 --> 00:36:53.105
the people's words are.

709
00:36:53.105 --> 00:36:55.564
So in research learning there is

710
00:36:55.564 --> 00:36:58.158
a new technique known as memory networks,

711
00:36:58.158 --> 00:36:59.943
and it's able to pick out

712
00:36:59.943 --> 00:37:01.839
the so-called attention.

713
00:37:01.839 --> 00:37:03.804
So to put a long story short,

714
00:37:03.804 --> 00:37:07.884
attention is a way to give ways to important key words

715
00:37:07.884 --> 00:37:11.438
when you perform machine reading,

716
00:37:11.438 --> 00:37:15.462
when the computer reads through a long text,

717
00:37:15.462 --> 00:37:18.161
and can leave some memory behind,

718
00:37:18.161 --> 00:37:22.262
and the memory can answer certain questions.

719
00:37:22.262 --> 00:37:25.179
Now you use multi-layer in order to

720
00:37:27.361 --> 00:37:30.060
keep track of those attention words

721
00:37:30.060 --> 00:37:32.535
which are (mumbles) by the first layer.

722
00:37:32.535 --> 00:37:36.300
So here three layer architecture is used,

723
00:37:36.300 --> 00:37:37.550
so this is one.

724
00:37:39.361 --> 00:37:42.500
Another one is, the number we want to

725
00:37:42.500 --> 00:37:45.242
also we want the words that are picked

726
00:37:45.242 --> 00:37:49.083
to be pivot words, pivot words by definition

727
00:37:49.083 --> 00:37:52.284
are indifferent to the domains.

728
00:37:52.284 --> 00:37:55.884
And so they must be very bad at classifying

729
00:37:55.884 --> 00:37:58.020
the source and the target.

730
00:37:58.020 --> 00:38:00.582
So we want the computation

731
00:38:00.582 --> 00:38:03.298
performance to be as low as possible.

732
00:38:03.298 --> 00:38:06.124
Between finding the source and the target.

733
00:38:06.124 --> 00:38:09.142
And then we want these two domains to work together.

734
00:38:09.142 --> 00:38:10.444
Side by side.

735
00:38:10.444 --> 00:38:13.361
So this is the adversarial problem,

736
00:38:14.275 --> 00:38:16.615
and we want them to work side by side

737
00:38:16.615 --> 00:38:19.115
to share these attention words

738
00:38:20.595 --> 00:38:23.953
in the two domains, so eventually this is the

739
00:38:23.953 --> 00:38:26.286
mechanism to make this work.

740
00:38:27.393 --> 00:38:29.552
So how does it work?

741
00:38:29.552 --> 00:38:32.635
Well, we took multiple Amazon domains

742
00:38:33.553 --> 00:38:36.913
and let them mutually transfer each other

743
00:38:36.913 --> 00:38:39.777
in order to build the experiment.

744
00:38:39.777 --> 00:38:42.404
So the first one is comparing with the

745
00:38:42.404 --> 00:38:46.006
hand-picked keywords and this one is the automatic one.

746
00:38:46.006 --> 00:38:48.726
The one with the deep learning method,

747
00:38:48.726 --> 00:38:51.078
and serving the deep learning method.

748
00:38:51.078 --> 00:38:55.205
And you can see it's dramatically higher in performance.

749
00:38:55.205 --> 00:38:57.286
Okay, and number two is comparing with

750
00:38:57.286 --> 00:39:00.023
the black box method such as this one,

751
00:39:00.023 --> 00:39:03.273
this one DANN, which appeared last year

752
00:39:04.881 --> 00:39:07.881
cannot pick out the important words.

753
00:39:09.451 --> 00:39:11.371
The performance is roughly the same,

754
00:39:11.371 --> 00:39:13.350
but the actual performance actually comes from

755
00:39:13.350 --> 00:39:16.971
the ability of our system to pick out

756
00:39:16.971 --> 00:39:20.374
these important words, just to read them loudly,

757
00:39:20.374 --> 00:39:23.331
these words are "great", "fantastic", "excellent",

758
00:39:23.331 --> 00:39:26.914
"terrible", and "uncomfortable", and so on.

759
00:39:29.312 --> 00:39:31.350
So they make a lot of sense, right?

760
00:39:31.350 --> 00:39:34.171
And these are yet another collection of these

761
00:39:34.171 --> 00:39:38.338
positive sentiments, and negative sentiment words.

762
00:39:39.494 --> 00:39:42.032
So this the seventh word of

763
00:39:42.032 --> 00:39:43.712
how we combine deep learning

764
00:39:43.712 --> 00:39:45.629
with transfer learning.

765
00:39:46.752 --> 00:39:47.585
All right.

766
00:39:48.891 --> 00:39:49.724
Now let me

767
00:39:51.254 --> 00:39:55.952
end the talk by mentioning two also very interesting work

768
00:39:55.952 --> 00:39:58.785
on combining these two techniques.

769
00:40:00.230 --> 00:40:03.334
We also have a group of students working with

770
00:40:03.334 --> 00:40:07.501
chat bot, we know chat bot, we know for example Siri

771
00:40:08.811 --> 00:40:10.561
is a chat bot, right?

772
00:40:11.590 --> 00:40:14.248
Echo is another chat bot.

773
00:40:14.248 --> 00:40:16.669
Idea Wasssan is another.

774
00:40:16.669 --> 00:40:19.070
But there is actually because of chat bot,

775
00:40:19.070 --> 00:40:21.414
why is the kind of chat bot that can

776
00:40:21.414 --> 00:40:25.910
carry on the conversation without much of a purpose.

777
00:40:25.910 --> 00:40:28.511
Just to be purpose is to have as long

778
00:40:28.511 --> 00:40:30.790
as conversation as possible.

779
00:40:30.790 --> 00:40:32.790
Another chat bot is like

780
00:40:34.134 --> 00:40:37.051
a student and a teacher, all right,

781
00:40:37.051 --> 00:40:41.309
you wish the conversation to be as short as possible.

782
00:40:41.309 --> 00:40:42.142
You want

783
00:40:44.534 --> 00:40:47.034
the sub task to be accomplished.

784
00:40:47.034 --> 00:40:49.139
Let's say if you're talking on the phone

785
00:40:49.139 --> 00:40:50.403
and buy the plane ticket,

786
00:40:50.403 --> 00:40:52.739
you want that ticket to be bought

787
00:40:52.739 --> 00:40:55.160
instead of having this day long conversation

788
00:40:55.160 --> 00:40:57.822
with a service person.

789
00:40:57.822 --> 00:41:02.097
And so this is known as task-orientated bot system.

790
00:41:02.097 --> 00:41:05.521
And here we are interested in building a

791
00:41:05.521 --> 00:41:09.021
personalized task repeating dialog system.

792
00:41:10.020 --> 00:41:14.420
Okay so the system lives on your mobile phone

793
00:41:14.420 --> 00:41:18.587
and you will get out both the general chat knowledge,

794
00:41:20.126 --> 00:41:22.024
general knowledge of the domain,

795
00:41:22.024 --> 00:41:24.446
as well as your own chat history,

796
00:41:24.446 --> 00:41:27.064
and can cater for your preferences.

797
00:41:27.064 --> 00:41:28.647
So that's our goal.

798
00:41:29.679 --> 00:41:32.003
Now wouldn't that be wonderful?

799
00:41:32.003 --> 00:41:35.603
But this is a chatting group problem

800
00:41:35.603 --> 00:41:39.261
because if you transfer, if you build this

801
00:41:39.261 --> 00:41:42.248
by transfer learning, we build a general model,

802
00:41:42.248 --> 00:41:46.355
how do we transfer to an individual's data?

803
00:41:46.355 --> 00:41:50.880
When that individual's data is very, very limited.

804
00:41:50.880 --> 00:41:54.059
Well, so here I want to speed up a little bit

805
00:41:54.059 --> 00:41:56.816
and just directly tell you some of the

806
00:41:56.816 --> 00:41:59.136
assumptions we made.

807
00:41:59.136 --> 00:42:00.731
The first assumption is

808
00:42:00.731 --> 00:42:04.677
dialog systems can be built using reinforcement learning,

809
00:42:04.677 --> 00:42:08.000
so for those who don't know what reinforcement learning is,

810
00:42:08.000 --> 00:42:10.117
it is a form of planning.

811
00:42:10.117 --> 00:42:13.117
Of moving ahead to meet a goal.

812
00:42:13.117 --> 00:42:15.797
Except it makes use of two concepts:

813
00:42:15.797 --> 00:42:18.880
one is a state, another is an action.

814
00:42:19.734 --> 00:42:21.557
So if you are in this state,

815
00:42:21.557 --> 00:42:24.757
you take an action, and it takes you to another state

816
00:42:24.757 --> 00:42:29.376
and hopefully that state is closer to the goal.

817
00:42:29.376 --> 00:42:31.196
So this is it.

818
00:42:31.196 --> 00:42:34.597
So in reinforcement learning people try

819
00:42:34.597 --> 00:42:37.280
to use a function, the west Q function

820
00:42:37.280 --> 00:42:42.016
to represent this overall progress or moral state.

821
00:42:42.016 --> 00:42:43.957
In which there are two privateers,

822
00:42:43.957 --> 00:42:46.192
one is a state, another is an action,

823
00:42:46.192 --> 00:42:49.872
so in conversation, you can consider that

824
00:42:49.872 --> 00:42:52.955
the conversation so far as the state,

825
00:42:53.792 --> 00:42:55.654
how much you have achieved,

826
00:42:55.654 --> 00:42:58.752
and what you will say next as the action.

827
00:42:58.752 --> 00:43:01.712
This is known as the speech act.

828
00:43:01.712 --> 00:43:04.712
So to a personalize a general model,

829
00:43:05.548 --> 00:43:07.973
we split the model, the conversation model

830
00:43:07.973 --> 00:43:11.056
into two parts: the green part corresponds to

831
00:43:11.056 --> 00:43:13.392
the general model, QJ, QG.

832
00:43:13.392 --> 00:43:16.512
The personalized part corresponds to

833
00:43:16.512 --> 00:43:20.636
the QP, which is the personalized model.

834
00:43:20.636 --> 00:43:24.914
So everybody has the same QT, different QP.

835
00:43:24.914 --> 00:43:28.297
So the question is how do you learn this part?

836
00:43:28.297 --> 00:43:31.256
We ignore this part because there

837
00:43:31.256 --> 00:43:34.099
are various other methods to do that.

838
00:43:34.099 --> 00:43:36.915
So let me just quickly and

839
00:43:36.915 --> 00:43:40.303
tell you that in fact we invented a

840
00:43:40.303 --> 00:43:43.220
dating mechanism, this is a switch,

841
00:43:44.186 --> 00:43:46.207
it can be zero or one.

842
00:43:46.207 --> 00:43:49.487
When you carry on a conversation

843
00:43:49.487 --> 00:43:52.218
there is a probability at any moment

844
00:43:52.218 --> 00:43:55.801
you are talking about something in general.

845
00:43:57.226 --> 00:44:00.559
You are asking a general question about,

846
00:44:02.959 --> 00:44:05.626
about purchasing a plane ticket,

847
00:44:07.066 --> 00:44:08.983
or if it's switched on,

848
00:44:10.005 --> 00:44:12.720
we spoke the personal situation.

849
00:44:12.720 --> 00:44:13.845
The personal preference,

850
00:44:13.845 --> 00:44:16.320
you still prefer the model.

851
00:44:16.320 --> 00:44:19.407
Yes, okay, so this one can learn to

852
00:44:19.407 --> 00:44:21.719
be switched on and off depending on

853
00:44:21.719 --> 00:44:24.219
the state of the conversation,

854
00:44:25.100 --> 00:44:25.933
and so

855
00:44:28.025 --> 00:44:30.608
eventually they will be able to

856
00:44:33.721 --> 00:44:37.342
do a lot of experiments and show the

857
00:44:37.342 --> 00:44:39.385
performance is really high.

858
00:44:39.385 --> 00:44:42.218
So just before I came to this trip

859
00:44:43.760 --> 00:44:46.003
I heard that this paper was accepted

860
00:44:46.003 --> 00:44:49.022
by AAAI this year, so people will

861
00:44:49.022 --> 00:44:51.220
go to AAAI in New Orleans

862
00:44:51.220 --> 00:44:53.240
where you will get to know

863
00:44:53.240 --> 00:44:57.501
this paper and the comment in more detail.

864
00:44:57.501 --> 00:45:00.501
So here is the baseline conversation

865
00:45:01.603 --> 00:45:03.384
in the user and the agent,

866
00:45:03.384 --> 00:45:06.760
here is the personalized, so you can see

867
00:45:06.760 --> 00:45:10.141
the length is a little shorter.

868
00:45:10.141 --> 00:45:12.808
And generally, this is the case.

869
00:45:14.941 --> 00:45:17.421
So this one I just quickly want to go

870
00:45:17.421 --> 00:45:20.529
to show you that using transfer learning

871
00:45:20.529 --> 00:45:23.712
and quick learning in general is beneficial

872
00:45:23.712 --> 00:45:27.290
to building a personalized chat bot.

873
00:45:27.290 --> 00:45:30.432
Actually have a demo, but it's in Chinese.

874
00:45:30.432 --> 00:45:32.171
(group laughs)

875
00:45:32.171 --> 00:45:35.210
So I'll save that for later.

876
00:45:35.210 --> 00:45:37.931
Finally, I want to show you something

877
00:45:37.931 --> 00:45:42.098
about how to use transfer learning for crowd-sourcing.

878
00:45:43.115 --> 00:45:45.792
As we know, crowd-sourcing is to mobilize

879
00:45:45.792 --> 00:45:49.291
a large crowd who are number experts

880
00:45:49.291 --> 00:45:50.874
who perform a task.

881
00:45:51.835 --> 00:45:54.774
And statistically using the aggregate information,

882
00:45:54.774 --> 00:45:57.017
in order to generally to find a result,

883
00:45:57.017 --> 00:45:59.579
such as labeling a picture.

884
00:45:59.579 --> 00:46:03.216
So for example if you have lots of pictures,

885
00:46:03.216 --> 00:46:06.336
you ask what species is in this picture,

886
00:46:06.336 --> 00:46:08.059
and the answer is dog.

887
00:46:08.059 --> 00:46:09.375
And of course there are many people

888
00:46:09.375 --> 00:46:11.875
who don't give correct answer.

889
00:46:12.816 --> 00:46:15.797
Mainly because they don't consider it as a dog,

890
00:46:15.797 --> 00:46:19.964
or maybe because they're just out there to (mumbles).

891
00:46:21.056 --> 00:46:24.791
So they're not careful with their task.

892
00:46:24.791 --> 00:46:27.791
So here we can use transfer learning

893
00:46:28.873 --> 00:46:30.373
to help with this.

894
00:46:31.238 --> 00:46:34.118
So let's say we have a domain which

895
00:46:34.118 --> 00:46:36.315
is represented by this row.

896
00:46:36.315 --> 00:46:40.046
We have another domain which is represented by this row.

897
00:46:40.046 --> 00:46:43.796
Now let's say we build some really good data.

898
00:46:44.787 --> 00:46:47.267
Somehow, by this one we have a lot

899
00:46:47.267 --> 00:46:50.707
of very reliable results of whether

900
00:46:50.707 --> 00:46:53.284
something is improved or something

901
00:46:53.284 --> 00:46:56.144
does not belong to our class.

902
00:46:56.144 --> 00:46:59.364
Let's say we have done something really well there.

903
00:46:59.364 --> 00:47:03.524
Now in fact, if for a new domain like this bottom one,

904
00:47:03.524 --> 00:47:06.425
if you are not sure whether the reader,

905
00:47:06.425 --> 00:47:10.244
the user is giving the correct label,

906
00:47:10.244 --> 00:47:12.964
what we can do is we can leverage the relationship

907
00:47:12.964 --> 00:47:15.566
between these two domains and learn

908
00:47:15.566 --> 00:47:19.649
about reliability of each user based on the task.

909
00:47:20.985 --> 00:47:24.366
So this is how you can use transfer learning

910
00:47:24.366 --> 00:47:27.281
for crowd-sourcing is you can use,

911
00:47:27.281 --> 00:47:30.365
the thing you'll transfer is the invariant

912
00:47:30.365 --> 00:47:33.744
knowledge about users' ability.

913
00:47:33.744 --> 00:47:37.145
So we use existing tasks to rank the users,

914
00:47:37.145 --> 00:47:40.585
and then you use the rows that you learned

915
00:47:40.585 --> 00:47:43.183
to come back and to write additional

916
00:47:43.183 --> 00:47:44.183
new results.

917
00:47:46.628 --> 00:47:48.644
So we won't go into too much details

918
00:47:48.644 --> 00:47:52.061
of this exact same that you have built a,

919
00:47:53.221 --> 00:47:55.638
you can build a latent model,

920
00:47:56.964 --> 00:48:00.564
or you can use a deep learning model for this,

921
00:48:00.564 --> 00:48:04.027
and the result can be multi-faceted.

922
00:48:04.027 --> 00:48:08.142
So in the interests of time I will stop here.

923
00:48:08.142 --> 00:48:10.146
Let me summarize by saying that

924
00:48:10.146 --> 00:48:12.130
pressure learning is to learn from

925
00:48:12.130 --> 00:48:13.287
lots and lots of data,

926
00:48:13.287 --> 00:48:15.683
deep learning especially,

927
00:48:15.683 --> 00:48:18.909
but transfer learning is trying to

928
00:48:18.909 --> 00:48:22.887
bring these bigness, the requirement for big data

929
00:48:22.887 --> 00:48:25.469
may not be necessary in the future

930
00:48:25.469 --> 00:48:27.608
for reliable learning.

931
00:48:27.608 --> 00:48:31.330
If you can adapt from other learning models,

932
00:48:31.330 --> 00:48:33.890
and in fact transfer learning and deep learning

933
00:48:33.890 --> 00:48:36.189
can work together side by side

934
00:48:36.189 --> 00:48:40.466
by quantifying which layer is more transferable,

935
00:48:40.466 --> 00:48:44.049
and making use of that by different levels,

936
00:48:45.288 --> 00:48:48.850
when you level regularity in terms of the data,

937
00:48:48.850 --> 00:48:52.600
and using this technique we have demonstrated

938
00:48:54.008 --> 00:48:58.509
at least three different application domains that

939
00:48:58.509 --> 00:49:01.822
transfer learning and deep learning can work together

940
00:49:01.822 --> 00:49:03.322
to do really well.

941
00:49:05.448 --> 00:49:06.546
So thank you.

942
00:49:06.546 --> 00:49:09.546
(audience applauds)

943
00:49:13.810 --> 00:49:15.106
Yes?

944
00:49:15.106 --> 00:49:16.989
<v Audience Member>In order to pick out</v>

945
00:49:16.989 --> 00:49:18.546
the pivot words, one of the things that

946
00:49:18.546 --> 00:49:19.970
you needed to do, as least you intend

947
00:49:19.970 --> 00:49:21.807
you needed to do was to

948
00:49:21.807 --> 00:49:24.146
ignore the effects of negations,

949
00:49:24.146 --> 00:49:26.450
great versus not so great,

950
00:49:26.450 --> 00:49:28.486
and in principle I can imagine

951
00:49:28.486 --> 00:49:30.352
that causing some problems in practice

952
00:49:30.352 --> 00:49:32.309
I dont know whether it matters

953
00:49:32.309 --> 00:49:34.592
that it's immediately gonna extend or not.

954
00:49:34.592 --> 00:49:36.032
(mumbles)

955
00:49:36.032 --> 00:49:40.028
<v ->Right, so actually pivot is only a phrase.</v>

956
00:49:40.028 --> 00:49:43.028
So "not so great" itself is a pivot.

957
00:49:44.189 --> 00:49:47.485
So in fact, when you apply transfer

958
00:49:47.485 --> 00:49:50.247
and deep learning together, you can consider

959
00:49:50.247 --> 00:49:54.414
angry freeze to have a certain degree of pivotness,

960
00:49:55.415 --> 00:49:57.308
and un-pivotness.

961
00:49:57.308 --> 00:49:59.927
So to be specific and (mumbles),

962
00:49:59.927 --> 00:50:01.427
and in that wheel,

963
00:50:03.751 --> 00:50:05.866
then you don't care so much about

964
00:50:05.866 --> 00:50:07.616
these preceding ones.

965
00:50:10.586 --> 00:50:12.028
<v Audience Member>Can you go over again</v>

966
00:50:12.028 --> 00:50:13.868
how you measure how was the,

967
00:50:13.868 --> 00:50:16.071
any specific thing (mumbles) or not,

968
00:50:16.071 --> 00:50:18.547
those are the only two domains that you have?

969
00:50:18.547 --> 00:50:19.630
<v ->Sure, Yeah.</v>

970
00:50:20.631 --> 00:50:22.381
So you probably meant

971
00:50:23.852 --> 00:50:25.031
quantification, right?

972
00:50:25.031 --> 00:50:26.028
<v Audience Member>Yeah.</v>

973
00:50:26.028 --> 00:50:26.861
<v ->Okay.</v>

974
00:50:37.161 --> 00:50:38.523
For example in this, yeah.

975
00:50:38.523 --> 00:50:40.104
<v Audience Member>Right, so the way say it</v>

976
00:50:40.104 --> 00:50:41.103
is is accuracy?

977
00:50:41.103 --> 00:50:42.543
<v ->Yeah, accuracy.</v>

978
00:50:42.543 --> 00:50:43.606
This is accuracy, yeah.

979
00:50:43.606 --> 00:50:46.183
<v Audience Member>And what is that exactly?</v>

980
00:50:46.183 --> 00:50:47.850
<v ->X axis is a layer.</v>

981
00:50:49.024 --> 00:50:53.083
So here each layer you can use that layer

982
00:50:53.083 --> 00:50:55.421
as a feature vector.

983
00:50:55.421 --> 00:50:58.646
And then you can connect that directly with

984
00:50:58.646 --> 00:51:00.761
the (mumbles) of classifications.

985
00:51:00.761 --> 00:51:02.086
<v Audience Member>Oh so you do you have sketches</v>

986
00:51:02.086 --> 00:51:03.910
for example as (mumbles).

987
00:51:03.910 --> 00:51:04.743
<v ->Exactly.</v>

988
00:51:05.750 --> 00:51:08.326
Yeah, and this is the performance.

989
00:51:08.326 --> 00:51:09.830
<v Audience Member>If you have very few samples,</v>

990
00:51:09.830 --> 00:51:14.027
like very few (mumbles) that already you make ...

991
00:51:14.027 --> 00:51:15.851
<v ->This is assuming you have enough data</v>

992
00:51:15.851 --> 00:51:18.184
and what you can do with it.

993
00:51:20.347 --> 00:51:22.608
<v Audience Member>So in general you mentioned that</v>

994
00:51:22.608 --> 00:51:24.827
the source and domain should be

995
00:51:24.827 --> 00:51:27.408
close enough that transferable,

996
00:51:27.408 --> 00:51:29.526
so is there a way that we can measure

997
00:51:29.526 --> 00:51:32.966
that beforehand, before just going to try

998
00:51:32.966 --> 00:51:35.049
and see what will happen?

999
00:51:36.288 --> 00:51:39.205
<v ->Yeah, this is the question asked.</v>

1000
00:51:40.562 --> 00:51:41.766
We need to learn out.

1001
00:51:41.766 --> 00:51:45.030
I think this is the holy grail of transfer learning.

1002
00:51:45.030 --> 00:51:47.808
People have devised, so first we have tried

1003
00:51:47.808 --> 00:51:50.550
things like care of emergence,

1004
00:51:50.550 --> 00:51:53.428
and because it seems to be accurate enough,

1005
00:51:53.428 --> 00:51:57.441
and then so this thing using the so-called MND,

1006
00:51:57.441 --> 00:51:59.366
which a measure of the mean of

1007
00:51:59.366 --> 00:52:01.449
the general distribution,

1008
00:52:02.288 --> 00:52:04.187
turns out to be more accurate,

1009
00:52:04.187 --> 00:52:06.587
but not quite enough.

1010
00:52:06.587 --> 00:52:09.888
So theoretically, there's a line of research

1011
00:52:09.888 --> 00:52:12.611
that's potentially to be explored,

1012
00:52:12.611 --> 00:52:16.157
which is how do you come up with a universal measure

1013
00:52:16.157 --> 00:52:19.411
of any two data sets how far they are,

1014
00:52:19.411 --> 00:52:21.096
and how transferable they are.

1015
00:52:21.096 --> 00:52:24.557
So this distance is yet to be discovered.

1016
00:52:24.557 --> 00:52:27.016
<v Audience Member>But yet there's nothing</v>

1017
00:52:27.016 --> 00:52:28.018
strong enough.

1018
00:52:28.018 --> 00:52:29.016
<v ->Practically, Yeah.</v>

1019
00:52:29.016 --> 00:52:32.856
Practically, what people do today is (mumbles).

1020
00:52:32.856 --> 00:52:34.939
It's not very principled.

1021
00:52:35.778 --> 00:52:38.056
<v Audience Member>Would (mumbles) help?</v>

1022
00:52:38.056 --> 00:52:41.218
Like the variance and scanners.

1023
00:52:41.218 --> 00:52:42.734
<v ->That's right, for sure,</v>

1024
00:52:42.734 --> 00:52:44.898
and they will help, in fact,

1025
00:52:44.898 --> 00:52:48.315
when you go deeper in using higher level,

1026
00:52:49.277 --> 00:52:53.858
multi level features similar to what I've described.

1027
00:52:53.858 --> 00:52:54.691
They have.

1028
00:52:57.055 --> 00:52:59.138
<v Audience Member>I have another question.</v>

1029
00:52:59.138 --> 00:53:00.471
Can you comment,

1030
00:53:01.938 --> 00:53:04.157
realizing the boss structure which is

1031
00:53:04.157 --> 00:53:05.976
the summation of the loss and the source

1032
00:53:05.976 --> 00:53:08.013
and the loss of discrepancy?

1033
00:53:08.013 --> 00:53:09.240
<v ->Yeah, for sure.</v>

1034
00:53:09.240 --> 00:53:12.120
<v Audience Member>What is the challenge there?</v>

1035
00:53:12.120 --> 00:53:14.920
Is it computationally cost?

1036
00:53:14.920 --> 00:53:15.920
Or is it ...

1037
00:53:19.618 --> 00:53:22.776
<v ->Right, the goal is to have accurate</v>

1038
00:53:22.776 --> 00:53:27.576
and a good model, and a high performance model here.

1039
00:53:27.576 --> 00:53:31.326
But you are trying to make use of this source

1040
00:53:32.957 --> 00:53:35.538
the way as we recommend,

1041
00:53:35.538 --> 00:53:38.205
so the three things you can do ,

1042
00:53:39.042 --> 00:53:42.322
there are three things you can do to make that happen.

1043
00:53:42.322 --> 00:53:45.319
One is in the source, because you have lots of data,

1044
00:53:45.319 --> 00:53:48.418
you can measure the loss, the source,

1045
00:53:48.418 --> 00:53:51.058
you can try to minimize that.

1046
00:53:51.058 --> 00:53:54.176
But that has to be related to what you do here.

1047
00:53:54.176 --> 00:53:57.998
So you try to, if you have some label data

1048
00:53:57.998 --> 00:54:02.917
that you try to minimize the performance, the error,

1049
00:54:02.917 --> 00:54:06.498
but if you don't then you can try to minimize

1050
00:54:06.498 --> 00:54:08.675
the reconstruction error.

1051
00:54:08.675 --> 00:54:11.639
But if you have some data that have built in

1052
00:54:11.639 --> 00:54:14.556
features on both, then you can have

1053
00:54:15.639 --> 00:54:18.056
an additional co-parent loss,

1054
00:54:19.341 --> 00:54:20.674
as a third term.

1055
00:54:21.778 --> 00:54:24.974
So whatever you add here, the goal is

1056
00:54:24.974 --> 00:54:26.724
you want this process

1057
00:54:27.661 --> 00:54:31.821
to happen in such a way that what you do here

1058
00:54:31.821 --> 00:54:33.469
can influence what you do here.

1059
00:54:33.469 --> 00:54:34.850
<v Audience Member>I see.</v>

1060
00:54:34.850 --> 00:54:37.688
My next question is if before we do observe

1061
00:54:37.688 --> 00:54:40.271
normal difficulties in terms of

1062
00:54:42.706 --> 00:54:45.360
minimizing these kinds of loss functions,

1063
00:54:45.360 --> 00:54:47.825
'cause I've never done experiments like this,

1064
00:54:47.825 --> 00:54:50.001
I just wanted to know whether it is

1065
00:54:50.001 --> 00:54:51.168
easy to train?

1066
00:54:54.182 --> 00:54:58.015
<v ->Right, so depending on the convergence rate.</v>

1067
00:54:59.900 --> 00:55:03.454
Convergence rate, sometimes slow.

1068
00:55:03.454 --> 00:55:07.416
Especially when you have (mumbles)

1069
00:55:07.416 --> 00:55:09.096
you're trying to deal with.

1070
00:55:09.096 --> 00:55:12.072
So typically what you do is you review this domain

1071
00:55:12.072 --> 00:55:16.175
and when you train from this you're trying

1072
00:55:16.175 --> 00:55:18.758
to move a portion of this over.

1073
00:55:20.175 --> 00:55:22.842
So it's not done simultaneously.

1074
00:55:23.818 --> 00:55:24.833
<v Audience Member>I see.</v>

1075
00:55:24.833 --> 00:55:26.879
Do you think there is potential for

1076
00:55:26.879 --> 00:55:29.535
more research in this area?

1077
00:55:29.535 --> 00:55:31.039
<v ->Yeah, definitely.</v>

1078
00:55:31.039 --> 00:55:32.559
Yeah, I think this kind of thing,

1079
00:55:32.559 --> 00:55:35.355
this kind of architecture is very interesting,

1080
00:55:35.355 --> 00:55:39.439
and people, (mumbles) generally necessarily

1081
00:55:39.439 --> 00:55:43.606
to try to simultaneously minimize the domain difference,

1082
00:55:45.068 --> 00:55:48.068
to maximize the performance solution

1083
00:55:49.148 --> 00:55:51.731
for this kind of done that way.

1084
00:55:54.210 --> 00:55:56.450
So there some architecture wise,

1085
00:55:56.450 --> 00:55:59.751
and organization wise, you're done.

1086
00:55:59.751 --> 00:56:01.127
<v Audience Member>It sounds like you</v>

1087
00:56:01.127 --> 00:56:03.706
have two architectures, one is like a why,

1088
00:56:03.706 --> 00:56:05.825
shared and it splits, the other one

1089
00:56:05.825 --> 00:56:07.909
was an exploitation.

1090
00:56:07.909 --> 00:56:11.685
It starts separate, there's a common submission.

1091
00:56:11.685 --> 00:56:13.525
<v ->That's right.</v>

1092
00:56:13.525 --> 00:56:14.869
<v Audience Member>So the first one</v>

1093
00:56:14.869 --> 00:56:17.888
I think of it as kind of understanding a shared perception,

1094
00:56:17.888 --> 00:56:19.589
have to deal with input,

1095
00:56:19.589 --> 00:56:22.608
and then a specialized (mumbles) task.

1096
00:56:22.608 --> 00:56:24.928
The second one is kind of learning what

1097
00:56:24.928 --> 00:56:26.709
the common core concepts are

1098
00:56:26.709 --> 00:56:29.248
that would be applicable for both practices.

1099
00:56:29.248 --> 00:56:30.251
<v ->Exactly.</v>

1100
00:56:30.251 --> 00:56:33.649
<v Audience Member>So for the end for end curve,</v>

1101
00:56:33.649 --> 00:56:36.352
which one of those is the one that gives us that?

1102
00:56:36.352 --> 00:56:39.568
Is it the ability to transfer easily

1103
00:56:39.568 --> 00:56:41.651
from the same input task,

1104
00:56:43.829 --> 00:56:47.029
or actually learning some really neat conceptual things

1105
00:56:47.029 --> 00:56:50.032
that are (mumbles) that's knowledge that

1106
00:56:50.032 --> 00:56:51.628
you can transfer from?

1107
00:56:51.628 --> 00:56:55.131
<v ->It depends on what (mumbles) are</v>

1108
00:56:55.131 --> 00:56:59.404
first to move is (mumbles).

1109
00:56:59.404 --> 00:57:02.112
So what's the (mumbles).

1110
00:57:02.112 --> 00:57:03.109
<v Audience Member>So it's a conditional perception.</v>

1111
00:57:03.109 --> 00:57:04.125
Shared perception.

1112
00:57:04.125 --> 00:57:06.149
<v ->For X, it's more vicious.</v>

1113
00:57:06.149 --> 00:57:09.631
Because you cannot target the different sequence

1114
00:57:09.631 --> 00:57:12.381
and share the same semantic core.

1115
00:57:14.032 --> 00:57:15.951
People have tried that,

1116
00:57:15.951 --> 00:57:17.347
for example in multi-model

1117
00:57:17.347 --> 00:57:21.347
one coming from X and another coming from pages.

1118
00:57:23.429 --> 00:57:25.587
That can be done in some

1119
00:57:25.587 --> 00:57:29.754
special cases such as, you have (mumbles) blank pages,

1120
00:57:31.808 --> 00:57:35.725
and multiple (mumbles) images.

1121
00:57:38.389 --> 00:57:39.392
Yes.

1122
00:57:39.392 --> 00:57:40.912
<v Audience Member>When you talk about compilations</v>

1123
00:57:40.912 --> 00:57:45.079
in terms of like faster RDN and (mumbles).

1124
00:57:46.149 --> 00:57:50.316
<v ->I have to convert (mumbles) learning.</v>

1125
00:57:51.166 --> 00:57:52.166
You can say.

1126
00:57:53.349 --> 00:57:57.349
(audience member asks question)

1127
00:58:01.181 --> 00:58:03.328
<v Audience Member>Nurse wants primary student B,</v>

1128
00:58:03.328 --> 00:58:05.697
and then they can transfer to the task.

1129
00:58:05.697 --> 00:58:09.798
<v ->Okay so I guess there are some commonalities,</v>

1130
00:58:09.798 --> 00:58:12.631
so I would hear a mention another,

1131
00:58:15.718 --> 00:58:18.300
(mumbles) is more related to life long learning.

1132
00:58:18.300 --> 00:58:22.050
Life long learning is something which repeats

1133
00:58:23.297 --> 00:58:26.964
as for the reading on the indefinite course.

1134
00:58:28.037 --> 00:58:31.595
So the system can accumulate knowledge

1135
00:58:31.595 --> 00:58:35.478
in the long term, and it's never gonna stop.

1136
00:58:35.478 --> 00:58:38.278
I guess meta learning is trying to learn some

1137
00:58:38.278 --> 00:58:40.611
commonality among tasks, and

1138
00:58:43.340 --> 00:58:46.375
so when you deal with a new task,

1139
00:58:46.375 --> 00:58:50.076
it's trying to use its memory and memories

1140
00:58:50.076 --> 00:58:52.076
to save some extra work.

1141
00:58:53.718 --> 00:58:56.860
So the spirit sounds (mumbles)

1142
00:58:56.860 --> 00:59:01.394
transfer learning, but maybe there are some differences.

1143
00:59:01.394 --> 00:59:04.727
Yeah, I'd like to learn more about that.

1144
00:59:07.100 --> 00:59:08.097
Yes.

1145
00:59:08.097 --> 00:59:12.475
<v Audience Member>This might be a little judgy but</v>

1146
00:59:12.475 --> 00:59:16.308
does deep transfer learning have any practical

1147
00:59:18.696 --> 00:59:22.279
applications in a sensor flow organization?

1148
00:59:26.078 --> 00:59:26.911
<v ->It does.</v>

1149
00:59:27.854 --> 00:59:29.281
<v Audience Member>With Google Zoom,</v>

1150
00:59:29.281 --> 00:59:32.641
things are (mumbles).

1151
00:59:32.641 --> 00:59:35.137
<v ->It does, it does apply to that.</v>

1152
00:59:35.137 --> 00:59:38.881
But because, you really have two dimensions

1153
00:59:38.881 --> 00:59:42.131
that you come to answer for the type of

1154
00:59:43.857 --> 00:59:46.936
optimization, one is you will build

1155
00:59:46.936 --> 00:59:50.103
better architecture, with this degree.

1156
00:59:51.238 --> 00:59:54.176
Another one is across different degrees,

1157
00:59:54.176 --> 00:59:56.972
in trying to reuse as much as what

1158
00:59:56.972 --> 00:59:59.760
you have learned as possible.

1159
00:59:59.760 --> 01:00:02.561
So if you can recognize true domains where

1160
01:00:02.561 --> 01:00:04.022
the differences are small,

1161
01:00:04.022 --> 01:00:06.740
then you don't have to start from scratch.

1162
01:00:06.740 --> 01:00:09.942
You can usually in the individual domain,

1163
01:00:09.942 --> 01:00:12.784
you can jus train the top two layers

1164
01:00:12.784 --> 01:00:14.284
and that's enough.

1165
01:00:15.825 --> 01:00:17.681
In the best case.

1166
01:00:17.681 --> 01:00:20.681
So this effort in optimizing depends

1167
01:00:22.561 --> 01:00:26.728
I think we can take on this two different directions.

1168
01:00:27.942 --> 01:00:31.698
There's also a lot of work on building

1169
01:00:31.698 --> 01:00:34.865
on the bottom layer and network layer.

1170
01:00:37.079 --> 01:00:39.462
There are several efforts that go

1171
01:00:39.462 --> 01:00:41.243
from the system side,

1172
01:00:41.243 --> 01:00:44.660
also try to make the system train faster.

1173
01:00:47.778 --> 01:00:49.528
So the answer is yes.

1174
01:00:54.307 --> 01:00:55.526
<v Dana>Thank you very much.</v>

1175
01:00:55.526 --> 01:00:56.751
<v ->Thank you.</v>

1176
01:00:56.751 --> 01:00:59.834
(audience applauds)

