推薦|給女朋做的ML減肥神器(附源代碼)

微信公眾號:全球人工智慧

文章來源:GitHub 作者:Ariel Faigon

我是如何通過機器學習減肥的

下面是一張橫軸為時間縱軸為我的體重的圖表:

本圖表的來源數據集為weight.2015.csv,R代碼來自date-weight.r,畫圖需要R和ggplot2函數。

接下來我將要描述我和其他人的想法,以及我用來過濾數據噪音的代碼,這種過濾方法對幫助我了解自己體重的正確趨勢起到了至關重要的作用。

我在github的存儲區(arielf/weight-loss)附上了我的代碼,Q&A部分以及延伸閱讀的鏈接。

免責聲明

以下方法從本人經歷出發,不排除個體差異。此處代碼可用於讀者自身數據。

此外,本文章不是一個科學嚴謹的實驗或研究,而僅是個人實驗發現。

基於此,我想通過伽里略的調查(Galileo affair - Wikipedia)來佐證自己的觀點:進化的進程經過了20億年的時間來塑造所有的真核生物、多細胞生物而達到最終的哺乳動物。克雷布斯(Krebs)周期、葡萄糖代謝、胰島素峰值、肝臟糖原、肉鹼、脂肪酶,這些生物物質對於你我都是一樣的。我們可能由於基因和性狀的差異會有所不同,例如有的更耐受胰島素,但每個人最基本的代謝化學過程是基本相同的,這些化學過程驅動了脂肪的合成和分解。

體徵調查和初期觀察

  • 我曾是個很瘦的人,以下是我的DMV證件,從上面看我大約就143磅(約130斤)吧。

  • 不幸的是,自從搬到了美國,我就開始發福,體重在2015年達到頂峰,增肥了50(約45斤)多磅。

  • 在美國,肥胖是一種常見現象。

  • 在美國,窮人往往更容易肥胖。

是否美國的生活方式造成了肥胖現象如此普遍?經過了相關文章的閱讀,我覺得有如下幾個質疑點:

  • 相比其他食物,快餐非常容易獲取且很便宜

  • 我們吃的大多數食物都是重度加工過的,請見 Food, Inc. (documentary)

  • 在超市隨處可見「零脂肪」、「低脂肪」的標籤

  • 許多食物富含增甜的高果糖玉米糖漿,請見Sugar Coated (documentary)

由此我聯想到了很多生活中的例子......我意識到自己需要好好思考一下,我決定忽略所謂 「專家」的建議,質疑被FDA(美國食物藥物監管局)認證的「食物金字塔」,傾聽自己身體的聲音...我決定通過收集自身的數據,靠數據說話。

以下是我獲得的結果。

失敗經歷

在過去,我嘗試了N種方法改變自己的飲食習慣。通過閱讀Atkins的書,我發現攝入過量的碳水化合物是長胖的主要元兇,但是僅僅是不攝入碳水化合物並不能達到減肥的效果。

我的自制力也比較差,自己超愛吃比薩和麵包,我一般會減少自己的碳水化合物攝入量,輕幾斤(例如5磅),然後中斷減肥,又去攝入過量的碳水直到反彈。我最長的一次節食僅持續了幾個月。

我認為我之前的方法里缺失了某些東西,並決心找到它,我可以加強運動,例如跑一個迷你馬拉松,但我並不喜歡。

我意識到必須養成一種不僅僅是減少碳水化合物攝入並加強運動的生活方式,而且這種方式應該是可持續性並且是自己願意長久堅持的,例如:

  • 能堅持幾年

  • 並不願意打破這個習慣

  • 願意堅持並且不會感到不開心

早期發現 & 驚喜時刻

我開始使用機器學習來幫助自己識別會影響我體重的因素。首先嘗試了簡單的方法:每天給自己稱重,並記錄新體重以及自己在過去24小時內的所有行為,包括飲食、鍛煉、睡眠等。我將數據存儲到如下的檔案中(一個包含3列的CSV文件):

Date,MorningWeight, Yesterdays lifestyle/food/actions

最後一列包括是個word[:weight]項,任意長度。體重為數值變數,用高/低分位數表示。

當缺失時默認值是1:

接下來我寫了段代碼n ascript將文件轉換成 vowpal-wabbit訓練集回歸格式。在轉換的訓練集中標籤項label(target nfeature)是在過去24小時中體重的改變數(delta),輸入的特徵是我在過去24小時做的引起體重改變的行為-也就是直接複製第三列的內容。

期間我並沒有節食,只是記錄數據。

在通過abs(delta)降序排列、平滑數據以及放大虛弱數據信號等操作後,我們讓機器學習的誤差收斂。數據如下所示:

你可以複製我的數據集合,參照我寫的指導文件HOWTOfile with more detailed instructions(arielf/weight-loss),如有問題請留言。

當你進行以上操作後,就是見證奇蹟的時刻,你可以得到如下的結果:

RelScore是正值(頂端)的生活方式是讓你增重的,而RelScore是負值(底端)的方式能減重。

以下是基於一個簡單數據集產生的變數重要性圖表:

聲明:請不要過在意這些數據細節,使用這個特殊的數據集有一定的挑戰性,因為:

  • 原始數據點(超過100天)的數量可能不足以產生足夠的顯著性;

  • 每天體重的改變數非常小,通常為~0.1磅;

  • 我的縱坐標刻度可能不準確,你可以看到每個間隔是0.2磅,這可能不是最理想的。使用0.1幫作為間隔可能更好;

  • 你可能注意到VW誤差收斂圖最小值接近-0.2,這是因為你對數據(過度擬合訓練集)進行多次傳遞的原因;

  • 讓你體重增減的項目通常會一起出現在同一條線上,所以它們會產生互相抵消的效果,這個問題可能需要自學習過程解決;

  • 在原始數據中有一些錯誤拼寫問題(我希望自己儘可能地修改好了)。

因此,我儘可能地關注在靠近極值附近的變數上,並利用這些發現來引導我未來的研究、實驗和行為。

除了數據的噪音和不完備、體重數據不準確問題,此機器學習實驗有4個發現是很明確的,那就是:

  • 在減重問題上,多睡覺是最好的;

  • 缺乏睡眠最能導致體重增加;

  • 碳水化合物會增加體重,特別是高澱粉和含糖食物;

  • 脂肪和油類食物會幫助減重。

這種「宅」的生活方式往往發生在我的周末:當不用工作是我就大睡一天,在家的飲食也會與上班時不同。

我費了些時間思考為什麼睡覺會減肥——主要是因為我們睡覺時不吃東西,我們往往會在不餓時胡吃海喝,但是睡覺時就不會,睡眠是我們一天中禁食時間最久的狀態。

當然,需要注意我對結果的解釋可能不夠準確和嚴謹科學,那需要不斷的實驗、檢查、修改和重複。

進一步的發現

你可能會注意到在最頂端(日期 vs. 體重)的圖上有一個顯著的體重減少階段。通過對堅持節食的深入理解,我意識到:延長空腹時間是極速減肥的最佳手段,我通過以下行為達到:

  • 不吃早飯

  • 晚上今早不吃東西然後上床睡覺

這讓我在一天中有14-16個小時是空腹狀態,超過一半的10-12小時。

第二個加快減重的因素是食用脂肪類食物(而不是碳水化合物)來達到飽腹;

第三是理解血糖指數Glycemic index和血糖負荷Glycemic Load,將自己的食物選擇盡量集中在低血糖負荷的食物上。

目前我有自信回到自己初到美國時的體重了,雖然我大約需要1-2年才能完全恢復過去20多年造成的不良身材,但需要強調的是瘦下來感覺真好啊!我在減肥期間的血液測試中,發現自己的的血脂也恢復到了平均值。

我的數據和健康的明顯改善說了什麼?

通過分析數據和閱讀,我發現需要從自身身體情況出發來制定減肥計劃,而不是盲目聽從。

膽固醇對於身體很重要,不要因為其有增肥的作用而不攝入。

我們的身體是個神奇的經過幾十億年進化的有機體,造成我們體重上身的不是攝入脂肪量,而是儲存脂肪量。

有一種叫脂肪酶物質能夠分解脂肪,如果提高脂肪酶的水平,我們的身體將更快地分解脂肪。當身體沒有糖原時,它將通過轉化脂肪來形成能量。

ATP合成作用ATPsynthesis能夠通過將脂肪轉換碳水化合物提供能量,身體就是個能量轉換器。在低碳/低脂的情況下,睡眠(空腹時間)將會很有裨益,它可以幫我們達到躺著也能瘦的功效。

當我們進一步降低碳水化合物水平——切斷碳水化合物時,我們將達到一個新的穩定狀態——酮症,這種狀態下,身體的能量完全來源於脂肪,我們將能夠在減肥的道路上更近一尺。

當然,以上只是一些簡短的陳述,如果要詳細還請參加更多文獻。

我的底線食譜

  • 最艱難(特別是一開始)的是減少碳水化合物攝入。例如好吃的高碳食物(披薩、義大利面、麵包等),還有高糖的加工食物,但這並不意味著不攝入碳水化合物,可以適時地犒賞自己一下(例如一周吃一次披薩),偶爾的放縱不會太影響減肥,但你得比減肥前少攝入。

  • 參考維基百科上對血糖指數Glycemicn index和血糖負荷Glycemic nLoad的描述。避免攝入高血糖的食物,這會避免由於血糖的極速升高而加劇脂肪的形成。如果想喝橙汁就吃橙子。如果你必須在咖啡或茶中加糖的話,使用特別的增甜劑n Splenda(sucralose+dextrose) tablet或 a Stevia drop/tablet 而不是普通的糖。

  • 高脂肪:我減少牛奶攝入到原來的一半並在考慮食用(無糖)奶油,這些食物含更多脂肪和少量碳水化合物,並開始吃鱷梨、橄欖油、椰果、堅果等。當我攝入脂肪時飢餓感會下降,重要的是,我會避標有」低脂肪」或「脫脂」標籤的食物。食品行業總是用糖來代替脂肪讓食物更美味,卻會帶來更多熱量。吃自然的東西是最好的。如何區分「好」和「壞」的脂肪,我採取的準則是:如果是自然的就是好的。最壞的反式脂肪是人工氫化的脂肪,行業用它來延長食物的保質期。飽和脂肪越少越好,單飽和脂肪(植物脂肪)的液體油是最好的,然後是多非飽和脂肪,最後是接近飽和的(但不是完全飽和)的來自動物的脂肪。我不吃人造黃油,但是天然的可以。然是無論我如何,我們的身體通過最機體代謝過程代謝掉飽和的脂肪。

  • 加一些運動。當然,多運動是好事,但是不是每個人都能堅持。我通常騎車工作,往返40分鐘,7天有5天騎車。你也可以採取遛狗(快走)或尊巴Zuma。選擇你喜歡的運動,再找個同伴,這樣會容易堅持很多。

  • 延長空腹時間:這個指標對減肥最有效。盡量多睡少吃。當你的身體缺乏糖原時,為了合成ATP能量,身體會通過提升分解脂肪的酶來分解脂肪通過合成能量。我們的身體通過分解脂肪來達到減肥。

  • 吃雞蛋:雞蛋富含大量的脂肪和蛋白質。我曾經採訪過一個114歲的日本女人並發現她保養的一個秘密就是每天吃雞蛋。我最愛的食物是炒雞蛋烤洋蔥。

  • 多咀嚼。不要狼吞虎咽!當你飽了就停下來。從食物入口到你的大腦傳遞出飽腹信號需要20分鐘的時間,所以不要因為快太吃而吃過多。

GitHub資源:arielf/weight-loss

兼職翻譯 招聘

《全球人工智慧》面向全球招聘多名海外:圖像技術、語音技術、自然語言、機器學習、數據挖掘等專業技術領域的兼職翻譯,工作內容及待遇請在公眾號內回復「兼職+個人微信號」聯繫工作人員。

熱門文章推薦

重磅|谷歌DeepMind將「記憶」植入機器學習,從而提高機器持續的自適應學習!

資源|28本必讀的經典機器學習/數據挖掘書籍(免費下載)

活動|12位AI大佬齊聚ACM TURC 2017-中國(已開始報名)

恐怖|50 億條用戶隱私信息泄露,嫌犯竟是互聯網名企工程師

乾貨|周志華揭開機器學習本質的57張PPT

重磅|百度PaddlePaddle發布最新API 從三大方面優化了性能

重磅|NVIDIA發布兩款"深度神經網路訓練"開發者產品:DIGITS 5 和 TensorRT

重磅|「薩德」——不怕!我國的人工智慧巡航導彈可破解

重磅|MIT發布腦控機器人:用腦電波(10毫秒分類)糾正機器人錯誤

重磅|谷歌預言:2029年通過納米機器人和器官再造 或將實現人類永生


推薦閱讀:

我的世界沒有了你,就只剩下吃
【瘦腿方法】推薦幾種瘦腿方法,針對減大腿和小腿脂肪的。親測有效,可以減小圍度。
如何正確跳繩健身?

TAG:人工智能 | 机器学习 | 减肥 |