https://ai-ky.github.io/blocks/
[飲水思源] 生活科技 & 電腦教學
https://ai-ky.github.io/blocks/
2024年9月7日 星期六
2024年8月6日 星期二
2024年6月6日 星期四
2024年3月26日 星期二
2024年2月21日 星期三
2023年12月19日 星期二
2023年12月17日 星期日
2023年12月2日 星期六
梯度下降與柯西不等式
好奇點入@黃光文在台南夢n的演講
https://www.youtube.com/watch?v=ZL_tQKjzj04
光文老師提供了一些有別於一般柯西不等式的教學活動
突然有感而發:
諸葛亮也要學會和臭皮匠一起合作,才能獲得更高的效率
來看看下面的例子
在山頂往下走時,理想狀況假設
每往東1步高度下降 30cm(斜率=30)
每往南1步高度下降 40cm(斜率=40)
假設每回合移動可以選擇往東走dx步
再往南走dy步
因體力有限,限制(dx,dy)這個向量的長度為50
(dx^2 + dy^2)^0.5 = 50 ,dx,dy >= 0
dx,dy為多少的時候可以得到本回合移動的最大的下降高度?
現實狀況中也當我們發現往南的效率比較好時,就會把資源全部壓在往南走
==> dx=0步 dy = 50步
但這樣選擇效率真的會比較好嗎?
至少數學上不是
不過這樣的場景發生在大大小小的生活場景中,
分組作業時,能力強的同學扛下大部分工作、
買食物的時候只買了自已最喜歡吃的品項、
讀書時只讀自己最喜歡的科目 ...
但其實分組時合作才創造更高的效率
買食物的時候要廣泛選擇才能營養均衡
讀書時要把時間分配給各科才能得到較高的分數(理論上啦)
這也可能是為什麼職業選擇多元的今日,
許多人會開始斜摃多項職業的原因,
回到上面下山的例子,
根據柯西不等式
dx=30步 dy =40步 可以在一樣的限制底下得到最大的下降高度
這其實就是在神經網路訓練階段中
用來調整模型參數的知名演算法「梯度下降法」為何可行的數學証明
這題的 dx 和 dy 的最佳比例剛好就可以視為
對x方向偏微之導函數值(x方向斜率)及
對y方向偏微之導函數值(y方向斜率)
之間的比例
以前學工程數學的時候就納悶這個方法的物理意義到底是什麼?
為什麼對各參數進行偏微之後的導函數值形成的向量是最大下降的方向?
直到最近幾年開始看神經網路相關內容的時候才發現,原來是用柯西不等式証明的
或許如果我高中就被@黃光文那麼可以啟發學生的數學老師教到的話
當下就能自己想通了也說不定 ~
2023年10月28日 星期六
2023年10月26日 星期四
與AI做朋友實作教案第七章 OUTLINE
與AI做朋友實作教案第七章 OUTLINE
1.前言 2023十大生成AI趨勢
2.大型語言模型
2.1 概述 Transformer
2.2 如何運用大型語言模型(ChatGPT)
2.2.1 Promt 使用三個要素:{角色}+{目標}+{產出}
2.2.2 chatGPT指令大全及相關線上資源 https://www.explainthis.io/zh-hant
2.2.3 示範如何用 chatGPT 寫程式及除錯
2.2.4 其它平台介紹 (ex:google bard,poe ai,)
2.3 如個調整的大型語言模型
2.3.1 In-context Learning
2.3.2 Fine-Tuning
3.文字生成圖片
3.1 從 GAN 到 diffusion model
(DeepFake、StyleGAN3、DALL.e、Midjourney、stable diffusion)
3.2 diffusion model 文生圖實作案例(以 playgroundai.com 為例)
3.2.1 套用圖片風格 (LoRA)
3.2.2 控制生成(ex:控制姿態)(controlNet)
3.2.3 局部重繪 (inpainting)
4.其它生成式應用現成案例
4.1 生成影片 ex: GEN2 runway
4.2 生成簡報 ex: Gamma
4.3 生成音樂 ex: waveformer
4.4 生成特定語者語音、音樂風格轉換 ex:AI孫燕姿
4.5 生成圖表 ex:GraphGPT: 使用 GPT3 token 產生圖表
2023年5月31日 星期三
2023年5月4日 星期四
2022年12月15日 星期四
2022年10月11日 星期二
2022年9月18日 星期日
2022年8月27日 星期六
2022年8月20日 星期六
自建python paia 遊戲環境
如何在自己python環境裡面玩 paia desktop 的遊戲呢?
2022年6月8日 星期三
2022年6月7日 星期二
2022年5月24日 星期二
2022年4月12日 星期二
2022年3月6日 星期日
在Windows 上安裝 python + Tensorflow + keras
※ 前言
法1.在 Windows 上從原始碼開始建構 whl檔 (python + visual studio...)
法2.找到已經編譯好的 whl 檔 ,直接安裝
法3.Anaconda治百病
在這裡和大家分享法2
※ Step0. 系統及軟體版本需求:
1. Tensorflow 2.6.2 :
而且在網路上找不到 x86的 whl 檔,因此
位元版本錯誤時有可能會得到下列訊息
2. Windows 64bit :
這裡要特別更新一下 Tensorflow 需要的 Microsoft c + + (MSVC)
[後面會再提到…]
https://docs.microsoft.com/zh-tw/cpp/windows/latest-supported-vc-redist?view=msvc-170
3. python 64bit :
比起dlib,發現 mediapipe 更好用,看了一下pipy上有支援到python3.7
對有sence滴朋友來說,看到這裡應該就可以自己去Try了…
4. keras:
5. Python IDE 的選擇:
b. IDLE一樣而言安裝 python 時它會自帶 IDLE ,大家可能會忽略這一點
有鑑於大家使用的IDE不盡相同,本篇文章的處理原則如下:
i. 直接由原始python的資料夾搭配『命令提示字元』(cmd.exe) 視窗操作
(一般使用者,不用最高權限)
PS: 安裝tensorflow,IDE要搭配哪一個版本的 python應該都是可以做選擇的
不管使用哪一種 IDE ,一定要先知道:
※Step1. 安裝 python 3.6 64bit
選擇 install now , 特別要記得底下顯示的 python安裝路徑,我這裡是
C:\Users\infor\AppData\Local\Programs\Python\Python36
※ Step2. 安裝 Tensorflow 2.6.2
1.下載 Tensorflow 2.6.2 並放入 pip.exe所在資料夾
3.切換資料夾到 pip.exe 所在位置
輸入指令:pip install tensorflow-2.6.2-cp36-cp36m-win_amd64.whl
至此 tensorflow 已成功安裝,接下來跑一下CNN圖片識別的範例程式。
Note:
1.若出現下列錯誤訊息
failed to load the native tensorflow runtime.
可能要更新一下MSVC後再重新安裝,連結如下:※ Step3. 執行CNN手寫圖片辨識範例(待補上)
windows左下視窗搜尋 IDLE (選擇python3.6 64bit IDLE)
2021年9月30日 星期四
人工智慧導論-課程規劃
人工智慧導論-課程規劃
●第1-2 節. 人工智慧概論 + python IDE: Thonny 介紹
ex1.machine learning for kid
ex2.線上 TTS / 語音辨識 / 翻譯
ex3.線上 自動塗色
https://petalica-paint.pixiv.dev/index_zh.html
ex4.自動猜測圖案
ex5.圖片去背 by AI
ex6.手寫轉換數學公式
https://webdemo.myscript.com/views/math/index.html
ex7.免費線上OCR服務
https://www.onlineocr.net/zh_hant/
Note:預告之後會分組報告
投影片:
https://docs.google.com/presentation/d/1a1hvDYYASaWA4yaoJWJCpOJFtJ3lyhxqm72jAYwVZNI/edit?usp=sharing
●第3-4節. 在 Python 上玩玩機器學相關應用安裝包
ex1: 語音辨識
speech_recognition
ex2: 文字轉語音
gtts
ex2: google 翻譯
googletrans
作業: ex1 + ex2 + ex3 ⇒即時把輸入語音轉換成另一種語言輸出
Note:預先分組
● 第5節 人工智慧專題實作 分組討論 :
Brainstorming
https://www.bnext.com.tw/article/53929/brainstorming-training-leadership
新興科技競賽說明
http://fun.hcvs.kh.edu.tw/active.php?id=6
1組約3人分12組
● 第4-5節 分組報告
每組3-5分鐘
想法新穎或有實現價值的組別可考慮參加比賽
● 第6-7節 手寫數字辨識訓練 + 測試
a.利用 Data_HandWrite 熟係 收集資料 + 資料標記流程
b.由 sklearn 中挑選一種模型來做訓練(ex:SVM)
c.實際測試訓練好的模型於手寫字數字辨識上
(訓練部分可放在colab中進行,亦可搭配keras來架構 CNN)
https://docs.google.com/presentation/d/1B5pWpujvnO1vb7vMkSAM6xjX1wELtaOdNslCM3rAD5E/edit?usp=sharing
● 第8-10節 KNN 人臉辨識-性別辨識
搭配pyFaceTrace做Feature Extraction
投影片:
https://docs.google.com/presentation/d/1OLHyCIglgr0-oWop0MP7BGOGvby_ruSMJjX-SOhx-pc/edit?usp=sharing
※相關youtube影片
https://youtube.com/playlist?list=PLPE0QG97eXpgvn0dE7ndkn_6aVmCkeGY2
https://www.youtube.com/watch?v=zXANs6mJe5U
2021年9月24日 星期五
opencv影像處理與機房環控
課程名稱:opencv影像處理與機房環控
※課程簡介:
opencv為一種常見的影像處理函式庫,利用opencv可取得webcam影像並寫出進一步的應用程式
詳細內容可參照課程表
※課程表及注意事項:
09:00~10:00
影像處理基本概念
點陣圖檔案格式
邊緣化及去雜訊實作
10:00~12:00
webcam畫面擷取與動差計算
ffmpeg 簡單應用
程式應用:動態記錄機房人員進入狀況
課程投影片連結:
https://docs.google.com/presentation/d/1gGKDlI9E5mWT71XCeVB4yf2MXRvB_Ut2xgULYrt184s/edit?usp=sharing
人工智慧專題-人臉辨識與門禁軟體介面
2021年7月21日 星期三
2021年6月23日 星期三
2021年6月16日 星期三
AR運動小遊戲於 Scratch3 AI 平台上之運用
為了讓小孩可以運動放電,我最近搜尋了網路上相關資源
看到的多半是AR相關的 app,還有一些互動式的運動影片,我個人比前喜歡前者
1. iphone 多半用 Active Arcade
2. Android 就用 Plaicise
上面的App都有同樣的問題,不管是用手機或是平板,畫面都太小了,如果要投影到其它地方也是蠻麻煩的,於是我想說既然筆電通常有內建鏡頭,且螢幕又比較大,能不能在筆電開手機模擬器裡面玩這一些遊戲,試了幾款手機模擬器之後…感覺效果都不太好,那時就想到了其實早在 scratch2 的時代,我們就可以讓小朋寫視訊互動的遊戲了。
自己做做看吧… 也能拿來當教學內容
scratch3 升級至網路版本之後視訊互動這個部分也有保留,我們可以偵測角色上視訊變化的大小,但在互動上這是不大方便的,還好 scratch 為開放平台,陸續有一些 Scractch3和 AI 機器學習結合的平台可以讓大家使用 (超棒的)
1. machine learning for kids 應該就是這個領域的先行者,網站上範例完整
https://machinelearningforkids.co.uk/
2. 日本的 Junya Ishihara 也在這一塊做出很多出色的延伸應用
https://thewonder.it/bukatsu/programming/class/3967/
大家可以參考柯T的教學影片:
※我這裡也來分享我在 https://stretch3.github.io/ 平台上
自製讓小朋有玩的遊戲專案:
https://drive.google.com/drive/folders/1MrFpp7g62YN5PKhcz5LnuDUCjoQrUi68?usp=sharing
安裝方式:直接自 https://stretch3.github.io/ 檔 案>從你的電腦中挑選>
...選擇我們給的專案檔即可
一共五個關卡,要在蘋果掉落至底部前用『鼻子』控制武器切掉它,離鏡頭遠一些運動效果會更好
※詳細安裝步驟可參考下列投影片
2021年4月27日 星期二
2021年3月28日 星期日
2021年3月5日 星期五
2021年3月1日 星期一
翻譯年糕 - 機器學習函式庫的綜合運用
小時候看到"小叮噹"拿出翻譯年糕的時候覺得很神奇
又是拜機器學習的進步之賜,現在手機就可以做出類似的功能了
常用這類 App 和不同語系的人們溝通的人應該會有一種體會:
想要了解一個國家的文化並做有深度的交流,還是要學習它的語言
不過透過機器確實可以讓我們在各方面得到很大的幫助,
我剛上幼兒園的女兒最近要做英文演說比賽,底下是幼兒園給的講稿
前置處理:安裝會用到的函式庫
#===========錄音=============== import pyMicVoiceDetection as vd vd.recordAsyn('test.wav',dur=6,deviceIndex=1,TH=0.1) #===語音辨識(語音轉文字)====== import speech_recognition as sr r = sr.Recognizer() with sr.WavFile('test.wav') as source: audio = r.record(source) Text = r.recognize_google(audio,language='zh-tw') print(Text) #==========翻譯=============== import googletrans #print(googletrans.LANGUAGES) translator = googletrans.Translator() results = translator.translate(text = Text,src='zh-tw',dest='en') print(results.text) #=======文字轉語音============ from gtts import gTTS tts = gTTS(text=results.text,lang = 'en' ) tts.save('temp.mp3')#,slow=True) #==========播放mp3============ from pygame import mixer # Load the popular external library mixer.init() mixer.music.load('temp.mp3') mixer.music.play()
2020年7月19日 星期日
2020年6月1日 星期一
2020年5月26日 星期二
Dino practice 小恐龍外掛小程式
第一段:偵測並顯示滑鼠位置,定位偵測障礙物的座標
import pyautogui pyautogui.click(30,10) #點擊座標 30,10 pyautogui.press('up') #按下'上'鍵 for i in range(60):#迴圈:重複60次,i=0~59 p=pyautogui.position() #取得座標放進變數p裡面 print(p) #印出p (目前滑座標) pyautogui.time.sleep(1) #等待1秒 #pix = pyautogui.pixel(100, 200) #pyautogui.position()
第二段:加入像素值的判斷,遇到小恐龍的時候按上鍵
2020年5月21日 星期四
Windows MS word檔批次轉pdf工具
#coding:utf8 import os, sys from imp import reload reload(sys) from win32com.client import Dispatch, constants, gencache def doc2pdf(sourceF,tartgetF): #sourceF = 'D:\\1.doc' #tartgetF = 'D:\\1.pdf' print(sourceF,' ==> ',tartgetF) # enable python COM support for Word 2007 # this is generated by: makepy.py -i "Microsoft Word 12.0 Object Library" gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4) # 開始轉換 w = Dispatch("Word.Application") try: doc = w.Documents.Open(sourceF, ReadOnly=1) doc.ExportAsFixedFormat(tartgetF, constants.wdExportFormatPDF, \ Item=constants.wdExportDocumentWithMarkup, CreateBookmarks=constants.wdExportCreateHeadingBookmarks) except: print('exception') finally: w.Quit(constants.wdDoNotSaveChanges) if os.path.isfile(tartgetF):print('translate success') else:print('translate fail') desktop = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop') print('DOC/DOCX to PDF batch converter . by K.Y. Lee (c) 2020 All Rights Reserved') folder = input('enter the target folder of MS doc/docx files on YOUR Desktop\n輸入欲轉換之word文件資料夾名稱(桌面上)[不需完整路徑]:') DIR = desktop+'\\'+folder+"\\" files = os.listdir(DIR) for f in files: ii = f.find('.doc') if ii>0: doc2pdf(DIR+f,DIR+f[:ii]+'.pdf')
2020年5月8日 星期五
2020年4月28日 星期二
類神經網路 backpropagtion 演算法簡單講解
我想不少人都曾經用過各種不同的函式庫在各種不同的平台上進行人臉辨識或
物件偵測,以前的時候這不是很簡單的技術,就算要直接引用別人
寫的函式庫也是要踩過很多坑才可以,現在這個時代 coding 變得越來越容易了,像是google出的這一款 object detection,簡單易學:
https://chtseng.wordpress.com/2019/02/16/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8google-object-detection-api%E8%A8%93%E7%B7%B4%E8%87%AA%E5%B7%B1%E7%9A%84%E6%A8%A1%E5%9E%8B/
連中學生最喜歡用的 appinventor 都可以做 object detection:
https://www.i-programmer.info/news/105-artificial-intelligence/13174-ai-with-app-inventor.html
如果說到人臉辨識順便也推一下小弟根據dlib包裝的這一套:pyFaceTrace
命令列輸入pip install pyFaceTrace 就可以安裝了喔
相關說明網站:https://reurl.cc/V65WRb
其實大部分的影像識別的演算法或是知名的模型(ex:resNet)都是從 cnn 演變出來的
https://medium.com/@CinnamonAITaiwan/cnn%E6%A8%A1%E5%9E%8B-resnet-mobilenet-densenet-shufflenet-efficientnet-5eba5c8df7e4
而 cnn 又是從 nn (類神經網路) 演化來的,大家在使用函式庫的同時不知道有沒有想過,我們在操作機器學習的黑盒子裡面的運作原理是什麼呢?
現在網路上大多流傳的是捲積(Convolution)及 detector/filter/kernel 概念的解釋,但訓練階段使用的 Gradient Dencent 和推導出來的,倒傳遞演算法(backpropagation)好像比較少人用簡單一點的方式來講解,其實有些網站也是解釋得蠻好的:
https://www.brilliantcode.net/1670/convolutional-neural-networks-4-backpropagation-in-kernels-of-cnns/
https://darren1231.pixnet.net/blog/post/338810666-%E9%A1%9E%E7%A5%9E%E7%B6%93%E7%B6%B2%E8%B7%AF%28backpropagation%29-%E7%AD%86%E8%A8%98
不過對於沒有數學底子的人,光是看算式,可能就快昏倒了
配合全臺首學的直播彩排,小弟預計於 5/6(三) 16:00於
南臺電子系物聯網實驗室進行直播
針對類神經網路 backpropagtion 演算法做簡單的講解
有興趣的人到時候可以連上來觀看
說明連結:
https://reurl.cc/qdrXnn
2020年3月4日 星期三
2019年12月17日 星期二
2019年12月15日 星期日
2019年12月4日 星期三
Scratch 動畫製作
https://scratch.mit.edu/projects/346277833
1.little fish
2.shark
3.background
https://scratch.mit.edu/projects/338225806/editor
https://drive.google.com/file/d/19SjVMh-yo6Yz2_8bj9OzwqL73xkWTVTd/view?usp=sharing
https://drive.google.com/open?id=1sq_USDH3RP8E7iV6lSo-2eAQHEHmLSJ0
https://scratch.mit.edu/projects/332836249/
http://lilimetooyou.pixnet.net/album/photo/331485380#after=331485359