20191215周学习总结
最近會(huì)打算每周總結(jié)一下學(xué)習(xí)的內(nèi)容,主要內(nèi)容可能是看過的書的一些學(xué)習(xí)筆記、論文閱讀、學(xué)習(xí)的知識(shí)點(diǎn)以及推薦一些文章。
這周的學(xué)習(xí)包括:
推薦系統(tǒng)的知識(shí)點(diǎn)整理
機(jī)器學(xué)習(xí)的技巧學(xué)習(xí)
linux下兩臺(tái)機(jī)器的ssh免密登陸方式
書籍閱讀
效率方法
推薦系統(tǒng)
因?yàn)楣ぷ鞣较虻脑?#xff0c;從九月份開始工作內(nèi)容從圖像轉(zhuǎn)到了推薦系統(tǒng),不過推薦系統(tǒng)的內(nèi)容其實(shí)是非常的多,目前也還是在學(xué)習(xí),然后也簡(jiǎn)單做了一個(gè)推薦系統(tǒng)知識(shí)體系的思維導(dǎo)圖,算是作為學(xué)習(xí)的一個(gè)指導(dǎo)方向,會(huì)陸續(xù)完善這個(gè)知識(shí)體系:
主要是參考這兩本書和極客時(shí)間的一門課程:
《推薦系統(tǒng)實(shí)踐》
《推薦系統(tǒng)開發(fā)實(shí)戰(zhàn)》
極客時(shí)間的《推薦系統(tǒng)三十六式》
推薦看的幾篇文章有:
今日頭條、抖音推薦算法原理全文詳解!
電商個(gè)性化推薦系統(tǒng),怎么設(shè)計(jì)?
騰訊信息流內(nèi)容理解技術(shù)實(shí)踐
《文章推薦系統(tǒng)》推薦系統(tǒng)系列--jianshu.com/u/ac833cc5146e
機(jī)器學(xué)習(xí)
分享下本科生晉升GM記錄 & Kaggle比賽進(jìn)階技巧分享中一些不錯(cuò)的調(diào)參技巧
優(yōu)化器的選擇
一般選擇 Adam,初始學(xué)習(xí)率是 3e-4,據(jù)說這是 Adam 最好的初始學(xué)習(xí)率;另一個(gè)選擇就是 SGD,隨即梯度下降,這個(gè)速度會(huì)更快,但如何選擇學(xué)習(xí)率就考驗(yàn)調(diào)參功力了
學(xué)習(xí)率策略
如何選擇一個(gè)合適的學(xué)習(xí)率策略,即學(xué)習(xí)率下降的頻率和幅度的選擇,這個(gè)主要影響的當(dāng)然就是梯度下降是否可以到達(dá)全局最小值,而不是陷入局部最小值了。作者推薦的三種策略:
ReduceLROnPlateau,patience=4(5),gamma=0.1,這是我常用的一套組合,并不是最好的;
StepLR,個(gè)人比較喜歡用這個(gè),自己設(shè)定好在哪個(gè)epoch進(jìn)行學(xué)習(xí)率的衰減,個(gè)人比較喜歡用的衰減步驟是[5e-4(3e-4), 1e-4, 1e-5, 1e-6],至于衰減位置,就需要自己有比較好的直覺,或者就是看log調(diào)參,對(duì)著2.1上訓(xùn)練的valid loss走勢(shì),valid loss不收斂了,咱就立刻進(jìn)行衰減;
CosineAnnealingLR+Multi cycle,這個(gè)相較于前兩個(gè),就不需要太多的調(diào)參,可以訓(xùn)練多個(gè)cycle,模型可以找到更多的局部最優(yōu),一般推薦min_lr=1e-6,至于每個(gè)cycle多少epoch這個(gè)就說不準(zhǔn)了,不同數(shù)據(jù)不太一樣。
Finetuning的技巧
微調(diào)是指采用一個(gè)預(yù)訓(xùn)練模型的初始參數(shù),然后在自己的數(shù)據(jù)集或者新的網(wǎng)絡(luò)模型上訓(xùn)練得到自己的模型,之所以要使用 finetuning,目的就是更好更快的收斂,并且得到性能更好的模型,由于現(xiàn)在網(wǎng)絡(luò)模型越來越大,模型的參數(shù)都是幾十萬,上百萬,甚至更多,如何設(shè)置初始參數(shù)就非常重要,好的初始參數(shù)當(dāng)然就可以縮短訓(xùn)練時(shí)間,并且獲得更佳的性能,而預(yù)訓(xùn)練模型就能達(dá)到這個(gè)目的--提供不錯(cuò)的初始參數(shù)選擇,當(dāng)然這里具體微調(diào)的方式,也是有以下四種:
微調(diào)方式一,最常用,只替換掉最后一層 fc layer,改成本任務(wù)里訓(xùn)練集的類別數(shù)目,然后不做其余特殊處理,直接開始訓(xùn)練;
微調(diào)方式二,在微調(diào)一的基礎(chǔ)上,freeze backbone 的參數(shù),只更新(預(yù)訓(xùn)練)新的fc layer的參數(shù)(更新的參數(shù)量少,訓(xùn)練更快)到收斂為止,之后再放開所有層的參數(shù),再一起訓(xùn)練;
微調(diào)方式三,在微調(diào)方式二預(yù)訓(xùn)練fc layer之后或者直接就是微調(diào)方式一,可選擇接上差分學(xué)習(xí)率(discriminative learning rates)即更新backbone參數(shù)和新fc layer的參數(shù)所使用的學(xué)習(xí)率是不一致的,一般可選擇差異10倍,理由是backbone的參數(shù)是基于imagenet訓(xùn)練的,參數(shù)足夠優(yōu)秀同時(shí)泛化性也會(huì)更好,所以是希望得到微調(diào)即可,不需要太大的變化。
- optimizer = torch.optim.Adam([{'params': model.backbone.parameters(), 'lr': 3e-5},{'params': model.fc.parameters(), 'lr': 3e-4}, ])
微調(diào)方式四,freeze淺層,訓(xùn)練深層(如可以不更新resnet前兩個(gè)resnet block的參數(shù),只更新其余的參數(shù),一樣是為了增強(qiáng)泛化,減少過擬合)。
編程開發(fā)
了解如何實(shí)現(xiàn)兩臺(tái)機(jī)器的 ssh 免密登陸:
兩臺(tái)機(jī)器之間免密登陸的方法,首先是在兩臺(tái)機(jī)器分別執(zhí)行 ssh-keygen, 命令出來后,直接按3次回車鍵,第一次就是默認(rèn)生成的密鑰保存在 ~/.ssh/id_rsa.pub,然后兩次是確認(rèn)密碼
接著在兩臺(tái)機(jī)器分別執(zhí)行命令 ssh-copy-id -I ~/.ssh/id_rsa.pub root@ip,這里的ip 是另一臺(tái)機(jī)器的ip,這就是將本機(jī)生成的ssh公鑰傳到另一臺(tái)機(jī)器,并寫入其 ~/.ssh/authorized_keys 文件中
執(zhí)行完后,ssh ip 來試驗(yàn)登陸機(jī)器,查看是否設(shè)置成功
另外完成這個(gè)設(shè)置后,兩臺(tái)機(jī)器之間的文件傳輸也是可以不需要輸入密碼的,也是非常方便了。
閱讀
這周終于是看完《軟技能:代碼之外的生存指南》,我覺得這確實(shí)是一本非常值得程序員看看的書,或者說對(duì)于之前比較火的一個(gè)話題--怎么做副業(yè),想做副業(yè)的也推薦看看這本書,這本書正如書名說的,介紹的代碼之外的技能,整本書分為 7 篇,也是 7 個(gè)方面的內(nèi)容,包括:
職業(yè):對(duì)自己職業(yè)的規(guī)劃、自由職業(yè)者的介紹等
自我營(yíng)銷:提高自己的影響力,打造自己的品牌;
學(xué)習(xí):學(xué)習(xí)方法
生產(chǎn)力:如何提高自己的效率
理財(cái):如何分配每個(gè)月的薪水、退休計(jì)劃、對(duì)房地產(chǎn)的投資
健身:一些健身知識(shí)的科普
精神力:如何擁有積極的心態(tài)、愛情、積極面對(duì)失敗等
效率方法
其實(shí)一直都在想著怎么提高自己的工作學(xué)習(xí)效率,之前其實(shí)也看過一些文章的介紹,方法包括:
設(shè)置一個(gè)大目標(biāo),然后分解成一個(gè)個(gè)小目標(biāo),然后做好月計(jì)劃、周計(jì)劃,并且做好總結(jié);
番茄工作法,也就是工作學(xué)習(xí)一段時(shí)間,比如30分鐘,然后休息5分鐘,主要就是提高專注了;
這幾個(gè)方法都有在使用,不過目前在計(jì)劃方面會(huì)做得不夠好,每次總結(jié)的時(shí)候,都會(huì)發(fā)現(xiàn)這周的計(jì)劃似乎太多,導(dǎo)致完成率不到50%,這主要是也是每天的效率有些低。
不過最近,又新學(xué)習(xí)了一個(gè)方法,來自也大(公眾號(hào):也談錢),叫做每天三件事+記錄一件自己開心的事情,主要就是每天只計(jì)劃完成 3 件事情即可,數(shù)量不多也不會(huì)太少,難度也不會(huì)太高,每天都能完成也可以保證一個(gè)正反饋,提高自己的積極性;
而記錄一件開心的事情也是可以讓自己在遭遇一些挫折困難或者不夠自信的時(shí)候,看看自己曾經(jīng)做過的成功的事情,或者開心的事情,鼓勵(lì)自己勇于面對(duì)挫折、困難或者是失敗;
一開始可以先定下一個(gè)堅(jiān)持7天的目標(biāo),然后堅(jiān)持完成7天,則可以繼續(xù)提高到 14 天,然后再就是一個(gè)月,這樣就很快能養(yǎng)成這個(gè)習(xí)慣,目前我的進(jìn)展是到了 14 天的這個(gè)階段,再堅(jiān)持 2 天也可以完成堅(jiān)持 14 天的目標(biāo),當(dāng)然其實(shí)這個(gè)過程中,也還是有一兩天沒能完全完成 3 件事情,但我感覺并不要緊,記錄下來每件事情的完成程度,或者說原因,明天再繼續(xù)今天沒有完成的事情。
當(dāng)然每天 3 件事情,其實(shí)也是需要根據(jù)自己的計(jì)劃來的,每周的計(jì)劃依然還是需要盡量量力而行,需要做好減法,只挑選當(dāng)前緊急重要的事情或者重要但不緊急的事情。
歡迎關(guān)注我的微信公眾號(hào)--算法猿的成長(zhǎng),或者掃描下方的二維碼,大家一起交流,學(xué)習(xí)和進(jìn)步!
如果覺得不錯(cuò),在看、轉(zhuǎn)發(fā)就是對(duì)小編的一個(gè)支持!
總結(jié)
以上是生活随笔為你收集整理的20191215周学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员职场:拥有一个学位将会在你的职业生
- 下一篇: 程序员求职的六大禁忌,你中招了吗?