發表文章

 AI 模型是什麼,什麼是建模 先講我個人的結論: 模型:是應用過往的資料,預測未來尚未發生的或是不存在的事情 建模:則是利用很多大師提出已被驗證過的演算法以及被驗證過的各種神經網路堆疊架構去組合出的一個能解決問題的框架(函數-我其實不太想說函數,免得又複雜的讓人卻步)   我們去看從簡單的Regression、Logistic Regression、SVM、randomForest、lightgbm、XGBoost,一直到複雜的LSTM、GAN、BERT...,這些偉大的模型,真的才是稱的上數據科學家的人,共同發展出來的框架   對於我們一般企業來說,如何用這些既定的模型,如何調參或者拆掉某一些層再訓練,又或者是模型再串模型(machine learning中的pipeline),這對企業單位的應用可以說是比較實際的問題 ,因為我們不可能像google這樣的公司擁有全世界的龐大資料,也不太可能像google、IBM等公司有用不完的運算資源以及AI科學家(這些人其實太頂尖,也不是真的很多)   我的另一個看法是目前較成熟的AI,主要還是針對一些特定的問題 ,例如:二分類、多分類、影像辦識、語音辨識,而通常解決多分類的模型不太可能解決語音辨識的問題, 很多的問題(我的問題是猜大樂透下期會出那些號碼似乎還沒有好的模型啊:))其實都是用問題去找模型 ,這世界上模型愈來愈多,有沒有一種模型是當我輸入問題,模型就可以告訴我最適合的模型是什麼,並且可以自動調參,據說有人在做這檔事   我只是把走了這麼大一圈的路才得出的結論分享給大家,當然這一圈也沒白走,希望更多的人參與,才會有進步   kaggle上有很多的問題及範例,當大家有這些概念後,可以去看看,我常看有些人為了學AI,學了很深的網路爬文技巧,如果你是要預測股價,或許ok,但是要理解一下 特徵工程 做法,如果不是可以先從kaggle裡面有沒有跟你類似的問題,大家在上面提供的solution作法,這樣學起來比較快 有空的時候可以看一下古典統計、線性代數、導數、偏微分或者上上台大李宏毅教授的線上課程,時不時補充一下數理概念會更好   另外對資料庫概念最好要有摸過,知道什麼是key值,什麼是group by,什麼是join   所謂好的模型,其實就是了...
圖片
  AI-PYTHON-TENSORFLOW-keras 需了解的基礎概念(二) 1)資料如何整理以及資料如何導入機器學習或深度學習模型中 一般在企業資料當中會有null(空值),在machine learning中,有些弱學習器是可以允許null值,比如decision tree、svm、甚至lightgbm,不過通常我們會針對null值做一些補值的動作,例如:平均值,中位數,或甚至欄位null值太多,該欄位或許可以考慮移除,但在深度學習中(deep learning)中是不可以有null值的,因此在同樣可以做分類預測,資料內容整理程度會有所不同 2)標準化: 之前有談過標準化,目的是不要在運算當中欄位值忽大忽小,例如:a欄的值從10-10000,b欄的值介於0-1之間,c欄的值又在50-100之間,這樣a、b、c欄在人做運算的時候,加櫂會是一個很大的問題,應該全部縮放在0-1之間,會是一個比較好的做法 3) 數值計算: 有些是屬性值的欄位,比如d欄存放1:藍色,2:紅色,3:白色...                                                                我們思考一個問題,4(黑色)在計算中的權重一定比較大嗎?說不定整個資料表中,黑色只有2筆,紅色有500筆,該如何做呢,之前提到的one_hot encoding就是在處理轉換這件事 假設有7個會員,四種顏色 one_hot encoding做完之後會像下面這樣,不是放顏色代碼喔 是不是所有顏色都要放上去呢?其實在幾十萬上百萬的資料中,如果很多特殊色都只有一二筆,甚至3-5筆,其實可以歸到'其他'一欄中 4)資料區間的取捨:  是否要從有資料的第一筆就取來訓練,見人見智,有很多考量的點,如果是已經累積8-10年的資料,而你所要預測的資料,2-4年內都是周而復始,或...
圖片
AI-PYTHON-TENSORFLOW-keras 需了解的基礎概念(一) 1)均方誤差的原理及算法-MSE(mean squared error) 上面是再找一條最佳解直線,但觀察點要多 最佳化方法的方法在不同樣本量,會有不同做法 暴力搜尋 樣本數量多,維度很大就不行,我們可以想像大海撈針   2)梯度下降法 利用微分中的求導數概念,將各點的導數結果連接起來,會形成導函數(函數的定義必須是連續性) 3) 在Tensorflow 中,目前的版本為2.x,Eager Execution模式一旦執行就會返回數值。以往的版本1.x,必須在腦中要有執行的藍圖,中間建構的層,無法及時看到結果,之前的版本不清楚沒關係,只要有學過machine learning,大概就能具備進入TF2.X的能力了 4)在tensorflow的模式及numpy模式下,雖然都是多維,資料必須為TENSOR的物件,才能運算,可以使用type()查看物件的type,確定物件是否同type,但同維的Tensor 與numpy 例外:2D Tensor 的運算,在Eager Execution模式下可以混和 Tensor 和 numpy 做運算,其結果為何,仍然為tensor的格式,3維numpy也可以跟3維TENSOR作運算 5)在tensor中算Gradient的方式,是使用GradientTape()建立一個反向偏微分的值,Tape意思就是一個記錄器 6)Tensor在早期有keras(約莫2014-2015年出現,是一位google工程師為了簡化對Tensor難懂的應用方式進行的一種介面開發,其實底層還是使用tensor或是更低階的tensor函數,同時支持Tiano)獨立的Library,在Tensor 2.x中已經整在tf底下,正式成為一個高階的函數庫(API),所以可以用tf.keras....進行引用 7) tf.Keras下建立網路模型有二種方式,分別為 序列型(Sequential Model)以及函數型(Function Model) ,這部分有本書叫做google大神...,裡面清晰易懂,不管如何,以下有幾個重點關於模型必須具有的觀念 層的意義:我們是用一個一個的層來搭建神經網路的,第一層通常為輸入層,最後為輸出層,中間(統稱隱藏層)隨備要放多少層都可以,但要看是否有意義及...

AI實作前的準備工作-資料檢視以及簡單實作一個例子

圖片
 AI實作前的準備工作-資料檢視以及 簡單實作一個例子 先想好我要解決(預測)什麼後=> 要實作一個可用的AI模型,應該怎麼做呢?   以下有幾個首先對資料要有一定程度的理解,或是我們說做  #EDA  #資料探索分析 整個在建模到上線可用的經驗上,你將會有60%-70%的時間花在處理資料的過程 ,也因此資料整理十分重要,為什麼這麼重要 就像喝咖啡一樣,咖啡好不好喝,重要的還是豆子,再來烘焙,之後才是沖泡技巧,不是嗎?   step 1: 資料從哪來 ??? 很多公司都有很多系統,很多資料庫,也有公司有數個不同的資料庫,例如:MSSQL、ORACLE、MySQL...,當然你可以利用 #spider提供的函數庫,把資料拉進來,整理一下,觀察一下,不過這樣的做法,我個人認為不太好,你可以想像, 畢竟#spider是拿來建模以及建模前的量化前置處理 ,把整理資料這件事放進來,不是它的強項,有些暫存處理也會吃掉記憶體,因此在整理資料的過程中,不宜放太多的工在它身上 那要怎麼辦,找一個資料庫,將公司的資料重新導到一個倉儲中,並且自動化更新,例如MSSQL,需要注意的是,這個倉儲不是將系統資料庫原原本本copy過來, 在導入倉儲時,就要先進行一道篩選 ,過濾未來用於AI要用的欄位資料,現在公司用的大部分還是關連式資料庫,因此透過關連將資料倒入倉儲中,倉儲的資料庫,TABEL彼此還是要有關連的key值 資料七七八八進來次後, 當然再次檢視跟你分析的問題是不是有可能有關 ,有沒有關係在第一道篩選時,就要儘可能決定,如果不確定可以先放進來,後面再依建模方式來處理,比如:deep learning比較不會影響效能,但在machine learning就不太適合 step2: 了解資料 需要用到的知識 #spider的基本操作 #python關於資料處理的幾個函數庫以及常用的函數 ,如下 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl import seaborn as sns =========================================================...

#AI #python 在公司應用的心得(二):#心態 很重要

圖片
    #AI #python 在公司應用的心得(二):#心態 很重要 今天來談談公司為何 #導入AI 應用困難重重或是會失敗??? 另外 分享AI 成功導入的作法!!!   以下的說法都是在零售百貨業的看法,不影射任何一家公司---免責聲明 誰是公司公司導入系統應用的決策者呢?,這個問題很難說,有可能MIS主管說了算,有時候是總經理 那各部門在導入AI應用時會扮演何種角色呢? MIS: 有時候必須說一下,當一位MIS的主管,除了要全盤掌握公司的企業流程,不管是軟體架構或是硬體架構,更重要的是融入企業文化及商業流程中,而且溝通能力十分重要,基本上要能向上溝通或是所謂向上管理,另外橫向溝通也必須具備,但不是交際,基本上必須站在老闆的思維,自然在說服公司總經理或董事長上就比較容易   行銷/會員: 我想行銷主管/會員主管或團隊是主要的靈魂人物吧,在行銷團隊中總有一套標準,如何規劃下年年度檔期,主題是什麼,製作物上刊,找那些廠商參與快閃,進場佈置與 撤場,之後檢討一下業績,周而復始,有時搭配一下線上雙十一或雙十二,有時也會玩一下618,廣宣也就是利用社群、EDM,線上也就是自己操盤要不就是找廣告公司代操投放,說起來該有的都有了,但是上面談了這麼多,真正的關鍵,這些數據有被系統化的整理及歸納嗎?,如果有,真的我認為已經有進入AI應用的本錢了,如果沒有就需要開始整理了,畢竟AI應用也就是在一定有數量(先不說正確)的數據下,利用模型找出(探索)規則,做出預測 下面講一個簡單的應用例子 例如:假設一份紙本DM成本10元,要是全灑100萬會員,光是不算郵遞費,就要1000萬元的製作成本,假設只有1%轉換率,也就是有1萬個會員看了DM來消費,平均客單價3000元,帶來的業績也就是3000萬,如果毛利30%(假設說法,事實上百貨商場毛利有另外的算法),也就是900萬,似乎並沒有賺??,這還不包括其間員工的薪水或是外製設計的費用 換個角度來看,如果灑30萬(假設AI預測的量)的會員,在所有條件不變下,帶來7000個(2.3%)看DM來消費的會員,平均客單價一樣是3000元,業績也就是2100萬,毛利630萬,花300萬DM成本,帶來630萬毛利,扣除300萬,還有330萬收入 上面說的也就是一種應用概念,AI可以告訴我們大概每個消費者對於DM的預測...