9/29~10/6,研究圖像生成,目標GAN,推薦從Kaggle學,DCGAN跑得不順利

(function(w,d,s,l,i)w[l]=w[l])(window,document,'script','dataLayer','GTM-KDKMGT');
(function(d, s, id) var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/zh_TW/all.js#xfbml=1&appId=668497826514848"; fjs.parentNode.insertBefore(js, fjs); (document, 'script', 'facebook-jssdk'));






if(BAHAID)
BAHAID = BAHAID.replace(/&/g, "&")
.replace(/, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");

BAHAIDlow = BAHAID.toLowerCase();

document.write('');

document.write('

');
document.write('');
document.write('');
document.write('');
document.write('

');

//document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');


else
document.write('
');
document.write('');
document.write('
    ');
    document.write('
  • 我要登入
  • ');
    document.write('
  • 註冊
  • ');
    document.write('
  • ');
    document.write('
');
document.write('
');


document.write('
');

document.write(' ');

(function()
var cx = 'partner-pub-9012069346306566:kd3hd85io9c';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
)();

service = new rsearch('rsearch');

if( BAHAID )
NOTIFY_getnum();
run30 = setInterval("NOTIFY_getnum()",60000);


function insideSecondaryfunc(frm, evt){
if( 0

















breadCrumbs(122, '', 'homeuid=y541258')








    breadCrumbs_listMenu(122, 0, 'homeuid=y541258')





    創作內容





    3 GP


    9/29~10/6,研究圖像生成,目標GAN,推薦從Kaggle學,DCGAN跑得不順利


    作者:物不平則鳴 李兒諳│2018-09-29 17:13:26│贊助:6│人氣:112

    這篇太長了,就此結束

    若DCGAN跑出來的結果理想的話,可能還有下篇

    不理想的話,很可能會先去找其它事做,哪天想到怎麼處理再開新篇

    --------10/6 要做機器學習、WASM還是建議用Linux系統------------

    等待機器學習過程中先找Python圖片剪裁函數

    我印象中應該是知乎專欄那篇有寫到動漫人物頭像剪裁


    https://zhuanlan.zhihu.com/p/24767059

    那應該是很可能會有圖檔大小剪裁相關的函數的



    若不剪裁特定物體的話

    只要把圖檔改成一樣大小的話

    這樣處理就行(底下的faces是資料夾名稱,可以任意取)

    雖然是不太建議啦,因為直接resize圖檔變形情況通常會較剪裁後resize嚴重



    import cv2
    import sys
    import os.path
    from glob import glob

    def detect(filename):

        print(filename)

    #↑這行只是用來顯示目前在處理哪個圖片,直接關掉去faces資料夾重新整理看結果也可
        image = cv2.imread(filename)
        face = cv2.resize(image, (96, 96))
        save_filename = '%s.jpg' % (os.path.basename(filename).split('.')[0])
        cv2.imwrite("faces/" + save_filename, face)


    if __name__ == '__main__':
        if os.path.exists('faces') is False:
            os.makedirs('faces')
        file_list = glob('*.jpg')
        for filename in file_list:
            detect(filename)



    需要pip install opencv-contrib-python才能使用import cv2

    這個.py檔要放在圖片數據集底下使用才有效

    因為是讀取當前目錄底下的所有.jpg檔處理



    在11:30之前折騰了會

    好在今天已經看過《終將成為你》第一話,至少感覺到算有放假了

    (《風靈玉秀》第二話還在想要今天看還是改天看)

    或者說是今天本來就放假,但今天在11:30之前所做的事情大多沒什麼進展

    還是對GAN、CNN等一竅不通

    就算是單純應用,也不知道怎麼把數據集改成自己的

    其實改數據集的話

    應該根據這篇

    https://github.com/carpedm20/DCGAN-tensorflow

    來改就行

    但該程式不是運作在windows下的

    所以程式中一些data_dir相關的路徑要把./給去掉



    不過圖檔從哪來呢?

    除去在那篇Github的python download.py mnist celebA之外

    嗯~至少Kaggle深度學習的課程資料有提供不錯的與狗相關的圖片

    雖然該數據集的圖檔大小不是固定的

    所以還要再另外程式處理

    具體圖片縮放程式要怎麼寫我還要研究



    嗯,下午就先研究要怎麼

    把Kaggle狗的數據集移到https://github.com/carpedm20/DCGAN-tensorflow

    這個好了



    唔,試了下,理論上圖片要統一大小

    但若圖片大小不統一的話

    也可以像是

    python main.py -input_height=108 --dataset=test --crop --train

    強行裁切圖檔至108高度

    雖然應該是不建議這麼做

    不過我還是先試著跑一次

    目前正在訓練當中,預設是epoch 25代

    那至少要epoch 1完成才會有圖檔



    程式碼大概僅有一個地方要改

    若安裝的tensorflow是用pip install的安裝方式

    代表只用CPU

    假如電腦不支援某種指令集的指令的話

    python會跳出

    Your CPU supports instructions that this TensorFlow binary

    was not compiled to use: AVX2 FMA

    這時只要將main.py的

    import os

    底下加一行

    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

    就可以忽略此錯誤了



    關於這錯誤詳情可參考


    https://blog.csdn.net/hq86937375/article/details/79696023



    嗯...理論上要先學機器學習再學深度學習

    不過那是因為機器學習的課理論上會有神經網路的部份

    而Kaggle的機器學習課程內容看起來是只有決策樹、隨機森林

    至於深度學習是談計算機視覺跟卷積(convolutions)

    感覺除了都是用Python外沒什麼重疊的地方

    所以就先看Deep Learning的教學了

    (Kaggle是講究速成的,對於程式背後所使用的數學不太深入講解

    而我的數學程度要搞懂機器學習、深度學習、計算機視覺前

    至少還得先理解 卷積(convolutions)、對矩陣微分、凸函數

    還有 雜訊對於圖像生成的作用

    雖然雜訊這個看起來是比較不用徹底理解)



    稍微試了下

    https://www.kaggle.com/dansbecker/exercise-convolutions-for-computer-vision/data

    全下載下來

    (其中train,訓練用的數據集,跟test,測試用的數據集檔案還蠻大的,加起來約720MB)



    把exercise_1.py的圖檔路徑改成確實存在的圖檔

    然後再把

    https://www.kaggle.com/dansbecker/exercise-convolutions-for-computer-vision/notebook

    的程式碼寫在一個py檔即可

    而import 要改成對應的路徑

    也就是

    from learntools.deep_learning.exercise_1 import load_my_image, apply_conv_to_image, show, print_hints

    新的py檔跟exercise_1.py放在同個目錄的話

    這邊就改成

    from exercise_1 import load_my_image, apply_conv_to_image, show, print_hints

    import後面接的就是def的函數啦

    其實這邊偷懶寫成from exercise_1 import  * 一次載入全部函數也是可以的

    那為什麼不可以寫成import exercise_1呢?

    其實是可以的

    只是程式要改成exercise_1.load_my_image()

    exercise_1.show(original_image)

    filtered_image = exercise_1.apply_conv_to_image(conv, original_image)

    exercise_1.show(filtered_image)



    也就是引入的每個函數前面都要加上exercise_1

    用from的寫法的話,就會把引入的py檔當作全域變數

    通常狀況下用from會比較方便

    可是若全用from

    若要是from的函數名或變數有衝到的話

    就會有麻煩!!



    若程式沒辦法順利運作的話

    初步估計可能原因是少安裝了些相應的函式庫

    (此外要注意exercise_1.py是用Python 3.X版寫的)

    應該

    pip install numpy

    pip install matplotlib

    pip install Image

    後就可以了

    若pip過程出現Requirement already satisfied

    基本上就是已經安裝了

    那通常就不會出問題



    假若全裝完後還是有問題的話


    建議輸入python後按enter下

    確認自己的Python版本是2.X版還是3.X版


    我這是以3.X版為主

    但是Python 2.X版的現有網路資源也很多

    可重新去找符合Python 2.X版的機器學習程式或改寫

    不過要注意的是TensorFlow是配合Python 3.X版使用的就是了



    若程式庫要更新的話就pip install --upgrade 程式庫名

    嗯,大概就這樣

    吃完午飯、曬完衣服後繼續研究!!



    看是要研究數學還是如何應用

    我想我會先繼續看要怎麼應用

    受挫時或者是想修改程式時才回去研究該程式確定會用到的數學

    因為數學根據我買回來的機器學習相關書籍

    粗略掃了下,我覺得有太多沒學過的了(就算有學過也忘得差不多了)

    可能不是短時間能補回來的,也不太清楚要怎麼補



    ---------10/6 11:30之前-----------------



    目前的麻煩是我的電腦獨立顯卡壞了,所以CUDA相關功能肯定是沒辦法使用的

    有些茫然

    正巧找到TensorFlow.js

    (基本上是配合Node.js使用的,Node.js是伺服端語言

    因此比較沒WASM的限制

    例如就算把Python用Cython轉成C語言

    再用emcc指令編譯成WASM

    若程式中有 os.mkdir(資料夾名稱)

    也就是產生個資料夾的指令

    這類指令因為網頁安全性的考量

    估計也還是沒辦法生效的



    附帶一提:

    上述操作其實挺麻煩的

    而且機器學習牽扯到許多程式庫

    Cython能否轉得那麼順利還沒試過

    除非你作業系統本來就用類Unix系統

    不然若不用虛擬機裝Ubuntu之類的Linux系統

    用emcc產生WASM過程中

    很可能會出現一堆奇怪的錯誤

    而用虛擬機的話多少感覺會慢一些(嗯...其實是可以安裝雙作業系統啦)

    雖然就算是Ubuntu系統也是要先設定好環境才能讓emcc這指令順利運作

    但至少找到的網上參考資料大多是直接用就不會出問題



    附帶一提,Make Girls Moe雖然也是js,看起來也有用到WASM

    但是它也是配合Node.js使用的

    不太清楚能否在file:///的狀況底下使用

    至少用Firefox直接開是不行啦)



    就試著接觸吧

    初步試用

    https://js.tensorflow.org/tutorials/mnist.html

    (若想訓練快一些的話,訓練世代epochs值可以調低些(2或1)

    雖然那樣訓練結果可能就會辨識錯誤

    用這範例需要安裝Node.js跟Yarn

    基本上Google到官網選擇自己的作業系統安裝後大致上就行了

    記得安裝完後命令提示字元要重開,不然環境變數很可能不會生效導致找不到yarn指令這樣)

    目前覺得呈現效果還算理想



    教學影片看起來是在

    https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YIeVA3dNxbR9PYj4wV31oQ

    嗯,至少有英文字幕!!



    唔,覺得教學影片似乎不太好用

    這邊只說下發現

    我覺得若用Javascript來做機器學習

    有個困擾是圖檔資料的讀取

    因此觀察了下mnist這範例

    發現它的手法也確實是Javascript的侷限



    首先圖檔來源是

    const MNIST_IMAGES_SPRITE_PATH =
        'https://storage.googleapis.com/learnjs-data/model-builder/mnist_images.png';



    做法是用個<img>,指定來源為該圖檔

    該圖檔的大小是784*65000 pixel

    然後開個canvas,寬度一樣,但高度是採取一次讀5000pixel

    先drawImage再用getImageData把圖檔資料讀進來

    (因為getImageData只能讀取畫在Canvas上的資料)



    嗯...所以我感覺似乎缺乏使用TensorFlow.js的理由

    在讀取圖檔部份會比Python麻煩很多

    用TensorFlow.js的好處是

    看起來可以用Javascript寫機器學習的程式碼



    可是假若都要用Node.js的話

    我們可以透過Node.js先執行Python

    具體可參考


    https://stackoverflow.com/questions/23450534/how-to-call-a-python-function-from-node-js

    那感覺上只要把Python產生的圖檔結果傳給Javascript即可



    像透過<img src="圖檔路徑">

    程式動態指定的話會像

    var img = new Image();

    img.src = "圖檔所在路徑"

    img.onload = function() //圖檔載入完成後要做的事情

    這樣



    -----------------10/5 簡略看mattya的Chainer-DCGAN.py---------------------

    也就是看這篇https://github.com/mattya/chainer-DCGAN



    注意:DCGAN.py該檔案是Python 2.X版寫的

    到3.x版要做以下修正

    from StringIO import StringIO

    改成

    from io import StringIO



    print len(fs)

    改成

    print(len(fs))

    所以

    print(len(dataset))

    也要改



    我目前就只修正到這邊

    因為再往下的程式碼比較難懂



    哦,對,路徑寫法要改下

    ./那是Linux(類Unix都是吧)底下的寫法

    代表當前目錄,所以若在Windows使用這程式的話,要把./去掉

    在使用該程式前

    要在程式檔那層路徑先創好images資料夾(不然就把檔名改掉)

    再把圖檔放進去

    不過圖檔的格式有沒有規定這我在程式碼中看不太出來

    因為Linux環境底下副檔名的用意主要是配合程式參數的

    例如用gcc編譯.c就是用C編譯,編譯cpp就是用C++編譯

    只看得出來是用二進位格式讀檔



    今天蠻累的

    明天休假,希望明天能把大篇幅在做些什麼看懂

    今天有看下Chainer的Docs(可以說是文檔,類似Go Docs那樣的東西)

    不過粗略看了下感覺根本看不懂

    其實會寄望明天也是因為

    我稍微掃了一下DCANG.py這檔案

    除了讀取圖檔,跟把圖檔產生在指定目錄底下的程式基本上都看不懂

    CUDA有些印象,但忘了,若印象沒錯的話應該是跟GPU相關的

    反正就算是明天,也肯定是各個沒看過的函式

    去Python或Chainer的網站查

    又或者是看StackOverflow或者是哪邊有寫到較詳細的介紹這樣

    -----------------10/4---------------------

    嗯,沒錯,Python機器學習,確實是透過雜訊(noise)來產生圖形的

    可是具體過程不是很清楚

    因為圖像生成(imaging,總算知道比較正式的稱呼了)所使用的雜訊種類可能有很多種

    不過圖像生成大多都用雜訊來生成圖片就是了!!

    底下這篇有介紹柏林雜訊

    https://www.redblobgames.com/articles/noise/introduction.html

    同樣是↑這篇文章內有提到

    為什麼要用雜訊生成圖片?

    因為這樣比較自然

    若採用每個pixel隨機一個顏色的做法

    要湊出對人有意義的圖像那機率超級渺茫啊

    此外雜訊是可以透過參數調整的

    像這篇的裡面的網頁demo連結

    https://github.com/mattya/chainer-DCGAN

    雖然不知道它的雜訊是什麼

    但感覺雜訊強度越強,出來的圖片越清晰



    看了Make_Girl_Moe開發者其中一個的介紹

    覺得Chainer這個框架感覺值得一碰

    就稍微試了下

    根據這兩篇翻譯文章實作成功

    https://imonce.github.io/2016/12/14/Chainer%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B(%E4%B8%8A)%EF%BC%9A%E5%9C%A8Chainer%E4%B8%AD%E5%81%9A%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92/



    https://imonce.github.io/2016/12/15/Chainer%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B(%E4%B8%8B)-MNIST%E6%89%8B%E5%86%99%E4%BD%93%E8%AF%86%E5%88%AB/



    需要注意的大概就是FunctionSet是Chainer初代才有的程式庫

    後來已經被Chain或ChainList取代掉

    詳請請看

    https://docs.chainer.org/en/latest/upgrade_v2.html

    然後ctrl-f 輸入functionset



    所以把程式碼中的兩個FunctionSet改成Chain

    程式就能順利執行了

    (注意大小寫要完全一致,習慣是首字大寫)



    雖然不是很清楚執行結果的意義

    手寫數字辨識測了幾次都是訓練五輪左右辨識率高達96%

    但是只看數字這樣跑

    缺少圖片跟實際比對過程感覺很缺乏實感




    其實一開始我下工回家後是在用這篇

    https://zhuanlan.zhihu.com/p/24767059

    可是我的沒圖檔數據集

    理論上是要照教學爬蟲或自行下載圖片然後再用頭像辨識截圖成固定大小這樣

    但我稍微測試了一下

    現成的DCGAN─Tensorflow

    就算缺乏數據集,python main.py一次還是很久
    到它爆出錯誤也還是要蠻長一段時間

    且這程式就路徑寫法看起來是在Linux環境底下執行的

    所以覺得還是另闢蹊徑好了



    -----------------10/3---------------------

    看書

    有心得再分享,雖然目前覺得有些累,感覺很可能會沒成果

    看書後感覺有些幫助

    不過想了一會兒

    我覺得現階段對我較有幫助的是

    先確認Python是如何產生圖檔的!!

    看了下手邊有的原始碼

    感覺好像pyTorch的torchvision.utils似乎有的樣子

    至於其它的似乎就比較不明顯

    utils負責的應該是存圖檔啦

    產生圖檔內容的話是歸在哪部份還不清楚

    雖然應該就是存圖檔的第一個參數

    可是看不太出來是怎麼畫的

    好像只找到net_G(noise)這樣的



    -----------------10/2---------------------

    今天把決策樹─CART演算法實作讀完或讀一段落就休息


    https://machinelearningmastery.com/implement-decision-tree-algorithm-scratch-python/

    不然雖說假日悠閒滴度過,但我現階段打電動一下子就膩了

    最近在碰《太吾繪卷》,不過感覺我有些選擇困難啊!!

    (目前覺得《太吾繪卷》遠距離攻擊過於有利)

    而想看的動畫是漫改,若先看漫畫的話估計就沒動力看動畫,所以還是等動畫出吧!!

    因此其實也沒什麼事情好做的!!



    嗯,不熟悉Python語法看不太懂

    不過Python中,用括起來的是個List,可以把它想成陣列

    [-1]的話代表是最後一個元素

    然後看這程式碼會發現

    決策樹(decision tree),是個不用隨機(random)的機器學習手段


    (後來發現那篇在實際應用時還是有用到隨機,感覺是把樹分成幾份folds時有用到隨機)

    這可能也是機器學習很常會優先介紹決策樹的原因吧

    確保大家的執行結果都相同




    主要是卡在不太清楚什麼是class_value

    有用print([row[-1] for row in group])這類手法看

    只是覺得跟想像中的結果不太一樣,解釋不太出來含意

    class_value應該就是要把結果分成幾類

    以該網頁列的程式來說就是分兩類(例如銀行判斷該客戶未來是否會還款)

    嗯,繼續研究!!

    我是沒想到機器學習的東西就算把實作程式碼列出來我也看不懂




    [row[-1] for row in group]的意思是

    group是個字串或List

    若print(str(group))的話,會看到像是

    [[7.444542326, 0.476683375, 1]]這樣的東西

    可以想成group[0]是[7.444542326, 0.476683375, 1]

    然後row就像是索引,group[row]這樣

    那row[-1]就是取出最後一個元素

    也就是1

    最外面的意思就是把這結果轉為List

    因此最後得到[1]

    若group有不只一個元素的話

    例如group有九個元素,每個元素都是具有三個元素的list

    [[2.771244718, 1.784783929, 0], [1.728571309, 1.169761413, 0],

    [3.678319846, 2.81281357, 0], [3.961043357, 2.61995032, 0],

    [2.999208922, 2.209014212, 0], [7.497545867, 3.162953546, 1],

    [9.00220326, 3.339047188, 1], [10.12493903, 3.234550982, 1],

    [6.642287351, 3.319983761, 1]]



    那[row[-1] for row in group]結果就是

    [0, 0, 0, 0, 0, 1, 1, 1, 1]

    這樣

    這種for迴圈前面加變數的做法也可以搭配if使用

    可以簡化程式



    不必寫成

    result = map(function, filter(condition, numbers))

    或配合lambda表達式取值像↓這樣

    result = filter(lambda x: x > 5, numbers)

    詳請請參考這兩篇文章

    https://stackoverflow.com/questions/6475314/python-for-in-loop-preceded-by-a-variable


    ↓這篇是stackoverflow該問題的簡體中文翻譯


    https://codeday.me/bug/20171111/95039.html



    ---------10/2稍早之前--------------

    看了下Make Girls Moe的原始碼看不懂

    不過看了後確定不是純用Javascript寫

    找到了WASM檔跟不確定作用的.egg檔

    總之看了一陣子,感覺程式碼主體並沒放出來(像用來產生WASM的檔案感覺沒找到)

    但可以透過

    README.md的敘述

    (下載Github程式碼後

    可以用git clone或用Github網頁的Download ZIP直接整個目錄下載下來

    https://github.com/makegirlsmoe/makegirlsmoe_web

    把src/Config.js第一行的var debug=false;改成var debug=true;後

    再用命令提示字元切換到目錄底下

    npm install

    安裝過程會跳很多警告,然後說有錯誤,不過實際上運作感覺不出問題

    npm start即可

    若沒npm指令的話先去node.js官網下載


    https://nodejs.org/en/)

    佈置在自己的node.js伺服器上

    理論上npm start後,設定程式通過防火牆後會自動開啟網頁

    不然就打網址

    http://localhost:3000


    http://127.0.0.1:3000



    嗯~那...在機器學習書來之前

    我除了看Kaggle學習以外能做的事情也不多了

    今天就悠閒滴度過吧



    ------------------↓10/1----------------

    明天假日打算花些時間研究Make_girl_moe的原始碼!!

    看了Kaggle機器學習教學

    初步感想是,機器學習很易於使用,但不易理解、重新實踐

    僅知道個概念是

    機器學習本質上就是在求些函數的極值

    例如損失函數的極小值

    (損失函數不清楚是什麼

    但假設我們是預測未來股價

    那損失函數很可能是未來股價-我們預測的股價取絕對值

    也就是|未來股價-我們預測的股價|)

    像決策樹常用的演算法有三種

    ID3

    找出信息增益最大的



    C4.5或C5.0

    先找信息增益高於平均的屬性,再找其中信息增益率最高的



    CART

    找Gini index的極值,極大還極小不確定
    但聽說Gini index概念跟 熵類似,系統混亂的程度,因此應該是求極小值吧



    https://zhuanlan.zhihu.com/p/29980400

    所以機器學習建立模型的要點就是

    把問題轉化成求些函數的極值

    資料來源:https://zhuanlan.zhihu.com/p/34443076



    為了理解與重新實作出機器學習演算法

    雖然其實是沒必要自己實作出機器學習演算法了

    只是就算只是純應用現有機器學習演算法我也不知道該怎麼用啦!!

    我是買了書,但具體如何要等書到才知道,因此先不列書名



    回正題,9/31在看這篇

    https://www.kaggle.com/dansbecker/your-first-machine-learning-model

    這篇要能順利運作的重點是

    pip install scikit-learn

    其實以後會用到的東西可以早些安裝

    像是tensorflow、keras這些框架還有openCV等

    不過具體安裝要打些什麼要找下

    (像openCV要打的是

    pip install opencv-contrib-python

    或pip install opencv-python

    前者是比較完整的安裝,後者是只安裝主要模組)



    大概就這樣

    教學中的東西若要確實顯示出來

    假如是用python 檔名.py 的方式的話

    基本上用print()即可

    例如

    print(melbourne_data.columns)

    文章中寫的輸出那些

    是假設你是用直譯的

    也就是先python後直接enter

    然後在裡面一行一行輸入各指令的所會出現的畫面



    我覺得許多機器學習的學習資源

    似乎都不是專案型的

    比較像是學各類積分方法

    然後說哪些題目能用上什麼積分法

    後來總算找到個人較中意的學習類型

    Kaggle網站https://www.kaggle.com/

    是用來培養資料科學人才的

    最主要的特徵是

    有很多類型的比賽

    會提供給參賽者實用的數據集(datasets)

    然後比賽結束後

    勝利者也常會分享做法

    初步感覺是很理想的學習法

    課程看了兩段

    覺得寫得還算淺顯

    從房價的評估談決策樹(類似if-else)

    然後說train(訓練)其實就是fit(擬合)

    傳統神經網路或語音辨識學習資料

    很常會看到train這詞

    算是讓人把可能過往學過的東西聯想在一塊

    相較於常見Machine learning學習資源塞領域專用名詞量少

    我初步感覺自己較喜歡這形式的教學

    我準備回家後寫第一個作業

    那剩下的等下工回家再說



    哦,這第一個作業真得蠻棒的

    連軟體安裝都不需要

    直接在網頁上寫(它是把這網頁系統叫做NoteBook啦)

    第一個作業寫得大致上還算順利

    雖然中間因為英文不是很好導致第二題送了幾次才過

    像是Lot size不知道是指Lot Area還是Lot Frontage

    附帶一提,不管哪個我都不知道意思

    跟房地產相關的字

    哦,查了下應該是Lot Size基地面積,可以理解為坪數

    那繼續奮鬥



    這個Kaggle還有教Python、R等

    我覺得可以蠻值得期待這教學的

    (好像沒教Matlab,不過機器學習較常見的也是Python跟R

    可能是因為有Matlab比較專業,比較需要付費的考量在吧)



    在進行下題前

    我先把環境在自己電腦建置好再進行下一步



    看英文瞎撞了一陣子之後(嗯,以後應該還是先google看有沒有現有答案)

    推薦閱讀這篇


    https://oranwind.org/python-pandas-ji-chu-jiao-xue/

    基本上照著這篇做就沒問題了



    若打pip install pandas出現pip ...不是可執行的程式之類的

    那就要先安裝Python 2.7或Python 3.6

    聽說Windows安裝程式是Python 2.7.9以後的版本都預設有pip指令



    然後程式碼可能要改下



    -----------------------檔名.py----------------------

    import pandas as pd

    melbourne_file_path = 'melb_data.csv'

    melbourne_data = pd.read_csv(melbourne_file_path)
    #melbourne_data.describe()
    print(melbourne_data)



    -------------------------------------------------------



    隨便一個.csv檔都行

    選melb_data.csv是因為Kaggle課程底下的Data可以下載的到




    但是要跟.py檔放在同個路徑底下

    註解掉的那行(Python的單行註解是#符號開始)

    好像是因為Pandas在15版以後有做些修正

    因此執行會看不到結果



    這樣子的話在

    命令提示字元

    切換到檔名.py所在的目錄底下(用cd指令)

    再輸入python 檔名.py

    就能看到結果了



    不過只會出現概略的結果

    (畢竟如果要看全部的結果是可以直接用excel匯入CSV

    或者是寫些程式讀取CSV檔)

    若要出現的更細

    需要對檔案做些處理

    (也就是程式碼要改下,像是引入DataFrame

    上述那個超連結看起來寫得蠻詳細的,雖然我還沒全部都試)

    那9/30大概就這樣

    16:50~20:24結束(中間處理些雜事,不然不需要花那麼久的時間!!)



    用Kaggle感覺有方向多了

    或者說是至少感覺自己有些事情做



    --------------↓9/29---------------



    其實在能網頁中使用FFmpeg之後

    我覺得要做出一定水平的影片還是很難

    動畫就別提了,是像Lex動漫新番預告片的效果都有些難度

    雖然若用專門的影片編輯軟體(幾乎都是得付費的),可行性就高出許多

    不過要做影片,需要圖檔吧?

    圖檔哪來?

    全都是侵權的話很容易起爭議

    所以先來研究下電腦生成圖片(自動作圖)吧

    (查了一下,日文有自動作圖,但不是這個意思,比較偏AutoCAD相關的

    所以這方面不太清楚確切的用語是?)



    這個純粹只是想研究看看

    而且其實也沒有很想研究,只是想說能否把訓練的圖片(原始數據集,datasets)改成自己喜歡的

    若只是想用結果的,這邊有個人覺得還不錯的現成網站能用

    https://make.girls.moe/#/

    上述這個網站用手機也能順利運作



    哦,這個也有開放原始碼


    https://github.com/makegirlsmoe/makegirlsmoe_web



    若覺得眼睛怪怪的是正常的,因為眼睛特別難處理



    那就開始研究吧!!

    我覺得有三篇文章還不錯


    https://zhuanlan.zhihu.com/p/24767059

    https://zhuanlan.zhihu.com/p/28601032

    ↑文章提到的

    https://github.com/jayleicn/animeGAN



    轻叩次元壁 -- 真人头像漫画化

    https://zhuanlan.zhihu.com/p/35777164


    這篇文章算應用的很強的了

    作者是李嘉銘

    也就是以前Qiita線稿自動上色技術分享─翻譯自日文的那篇,


    ↓該文章的程式碼(但目前不知道放的程式碼是否完整

    是說做完善後會公開)


    https://github.com/jerryli27/TwinGAN

    當然我是還沒實踐過



    我是有稍微試著看下原理一類的

    隱約覺得是學不動

    就跟接觸機器學習的感覺一樣

    畢竟這本來就機器學習,GAN也是機器學習下的其中個分支

    不過還是先試試看吧

    不行的話再只著重軟體的使用!!

    (應該很快就不行了,我非假日精神不好,假日精神好的時間也很短)



    不過看了幾篇文章

    共通點是程式用Python

    (make girl moe看不出用的是什麼

    乍看之下是純用Javascript

    我好像找不到.wasm檔案

    但我不記得Javascript支援class、import的寫法

    (啊,大概真的是用Javascript寫的,我想起來class在ECMA6Script標準後開始支援

    至於import的話,好像在.js檔案的時候是支援的,用來引入別的js檔用的


    不然.js檔讀取些外來變數、函數會有困難)

    不過我沒接觸過Vue、React等框架

    所以也許還真的是純用Javascript寫的)

    至於TensorFlow那是框架的名稱

    而PyTorch還沒研究不清楚(看程式碼的話,基本上就跟Python import現有的程式庫差不多)



    嗯...我想還是先從公開課下手好了



    這篇感覺不錯

    Coursera Machine Learning スライドまとめ

    老實說那個日文我沒翻譯看不懂


    https://qiita.com/tackey/items/89c4a94f1c0c36d3c4d3

    為何是日文

    其實點進去細項的超連結後就是英文PDF了

    畢竟是Coursea(國外的著名公開課網站)的

    其實我應該先用Google搜尋的

    只是正好想起來Qiita這個網站

    搜尋一下就正好看到



    那,開始讀吧!!

    這個是Machine Learning

    沒意外的話離我的目標 GAN 或更進階的什麼N 會有段很遙遠的距離

    但今天不是假日

    我想還是先別用編譯環境這類較屬於軟體操作的事情好了

    為了偷懶就先讀英文PDF吧

    沒作業純學習的話是很輕鬆的,因為學得怎樣也不知道!!



    嗯,很簡短的投影片

    對應的課程應該是這個

    不過這是2008年的影片,而Qiita那篇是2016年開始學的

    但公開課確實是有可能用過往的影片啦!!


    (至少老師的名字是同一個人 Andrew Ng ,基本上機器學習資料很容易看到這名字

    不過看維基百科才知道,Coursea是他跟另一個人共同創辦的)



    基本上看PDF是說

    機器學習的定義

    大致上就是機器學習是種處理問題不太需要一有變化就寫程式的技術

    主要是用來處理不太能透過迅速寫程式來解決的問題

    像是無人直昇機、手寫辨識、語音辨識(像語音搜尋那樣)、電腦視覺(像照片人臉辨識)



    機器學習分兩類

    監督式機器學習(有正確答案的)


    非監督式機器學習(應用範圍像是,市場區隔、天文數據分析、基因分析、社群關係分析...)



    除去機器學習之外還有強化學習(Reinforcement learning)

    不過深度學習是算哪塊就不清楚了!!



    監督式機器學習有兩類手法處理問題

    迴歸

    (應該就是以前 最小平方法 的那個,不過最小平方法是線性迴歸,有沒有非線性我也不知道)

    (但從圖那一直線看來,講的也肯定是線性迴歸)

    分類



    非監督式機器學習...

    PDF檔案內容較為簡略

    除了雞尾酒派對演算法之外不清楚



    看了影片評論之後,除了迴歸外出現了一堆奇怪的東西

    像是 梯度下降(gradient descent,PDF檔好像沒看到)

    PCA(principal component analysis,主要元件分析?)、ICA(I是獨立的)



    由於是第一堂課,只做大概的介紹

    所以還蠻輕鬆的

    不過看影片的話

    他們似乎想用的軟體是 Matlab跟Octave(一個配合Matlab使用的軟體)

    若沒猜錯的話,關係類似 Python、SciPy這樣



    那今天(9/29)應該就此結束








    喜歡3
    收藏
    0
    引用
    0
    留言
    推上首頁



    檢舉








    引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4146003

    All rights reserved. 版權所有,保留一切權利





    相關創作

    同標籤作品搜尋:GAN|機器學習|自動作圖|Kaggle|對抗生成網路|對抗式生成網路





    [活動心得]4/14 LabVIEW Pro 程式獵人分享大會




    【日常?】寫手問卷




    開了一個新 Blog


    留言共 0 篇留言




    Util.ChangeText('replys', Util.ChangeText.FLAG_LAZYLOAD|Util.ChangeText.FLAG_MAX_SIZE|Util.ChangeText.FLAG_BALA_PLAYER);

    我要留言提醒:您尚未登入,請先登入再留言


    3喜歡★y541258 可決定是否刪除您的留言,請勿發表違反站規文字。



    前一篇:9/24~9/28,嘗試...

    後一篇:10/2,閒聊轉換心境─...








    egg('.MSG-list8C img').each(function(elem)
    elem.className = elem.className + ' lazyload';
    );

    egg('.gallery-image').imageGallery();

    function deleteCreation(vCode)
    var content = egg('.MSG-list8C').html();
    var pattern = /]*?>/i;
    var html = '
    確定要刪除嗎?';
    var width = '200px';
    if(content.match(pattern))
    html += '
    ';

    var boxConfig =
    'closeButton': false,
    'css':
    'width': width

    ;

    egg.mutbox(html, '訊息',
    '確定': function()
    if(egg('#chkDelTruthImage:checked').size())
    egg('[name=delTruthImage]').val('yes');


    egg.cookie.del('ckHOME_CREATION','home.gamer.com.tw','/');
    egg.cookie.set('ckHOME_CREATION',vCode,'home.gamer.com.tw','/');
    document.getElementById('frmDel').submit();
    egg.lightbox.close();
    ,
    '取消': function()
    egg.lightbox.close();

    ,boxConfig);

    var buttonOk = egg('.BH-popbtns :button:eq(0)');
    if(buttonOk.size())
    buttonOk.get(0).focus();



    resizeImage(627);

    egg('.btnGp').click(function()
    $.mutbox('請先登入才能進行此動作', '訊息', '確定':function()location.href='https://user.gamer.com.tw/login.php';);
    );







    訂閱私訊


    作品資料夾


    對於個人而言特別重要的 (27)


    自編遊戲綜合考題與試答 (8)


    單機版網頁遊戲系列相關 (10)

    如何改成線上版網頁遊戲系列 (6)

    自製腳本語言 (1)

    3D (1)

    格鬥遊戲 (1)

    遊戲賞析系列 (1)

    遊戲程式進展 (20)

    簡略音樂遊戲 (2)

    地水師 (5)

    多媒體素材處理 (10)

    文字型冒險遊戲 (7)

    極簡陋大富翁 (3)

    RPG迷宮與戰鬥雛形 (12)

    競技型俄羅斯方塊 (1)

    組牌遊戲 (2)

    魔喚精靈日本版─闇箏 (1)

    旋轉泡泡球(待處理) (0)

    常見網頁遊戲系統模仿 (1)

    橫版過關遊戲 (3)

    滑動式拼圖 (1)


    程式語言建立自信系列 (8)


    Unity相關 (6)


    [問題與思考] (7)


    實況、名詞、關注議題分享 (46)

    實況歌單 (1)


    音樂與自動作曲相關 (9)

    聽譜練習 (12)

    自動作曲研究 (4)


    玩遊戲感想 (21)

    電動日記(真的日記,不是遊戲名稱) (5)

    式姬-幽界之門 (19)

    うつしよの帳 (1)

    送帳號 (1)

    陰陽師 (3)


    遊戲妄想 (14)

    偶爾正經下 (2)


    對正規教育的期許 (25)


    時光旅行 (4)


    除去上述分類後還是跟程式語言相關 (18)


    小說-離心力 片段 (37)


    知乎 (33)


    異國研究 (0)

    日本 (5)

    俄國 (0)

    印度 (1)

    多文化綜合比較 (5)


    一行文 (11)


    各領域歷史與沿革或說想法發想 (12)

    數學 (11)

    計算機(程式,電路) (3)

    語言 (3)


    讀後感 (1)


    未分類 (153)


    lastraven7帥哥
    進來嘛看更多我要大聲說昨天01:30







    googletag.cmd.push(function() googletag.display('div-gpt-ad-1489070677458-0'); );



    (function(window, $)
    var $window = $(window);
    var $document = $(document);
    var $BH_slave = $("#BH-slave");
    var $BH_master = $("#BH-master");
    var $flySalve = $("#flySalve");
    var posY = $flySalve.position().top;
    var fad_style = document.getElementById("flySalve").style;
    var BH_wrapper_width = $('#BH-wrapper').width();
    var BH_topBar_height = $('.TOP-bh').height();
    $(window).on("scroll", function()
    posY = $BH_slave.height() - (fad_style.position === 'fixed' ? 0 : $flySalve.height());

    if ($document.scrollTop() > (posY + $BH_slave.offset().top - BH_topBar_height) && $BH_slave.height() < $BH_master.height())
    fad_style.position = 'fixed';
    fad_style.top = BH_topBar_height + 'px';
    if ($(window).width() < BH_wrapper_width)
    fad_style.left = (BH_wrapper_width - $BH_slave.width() - $document.scrollLeft())+'px';

    else
    fad_style.position = '';

    ).on("resize", function()
    fad_style.left = null;
    );
    )(window, jQuery);
















    face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】





    The name of the picture黑色沙漠手遊伺服器是巴雷諾斯公會缺人名稱是GO歡迎大家查詢到後加入

    This page is only for reference, If you need detailed information, please check here
    The name of the pictureThe name of the picture

    Popular posts from this blog

    京昆高速公路

    [翻譯?] 就此消失吧

    【心得】新、舊選單《獨立快捷鍵 / 快捷列》增加、更改(圖解)