<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by proxy0001 on Medium]]></title>
        <description><![CDATA[Stories by proxy0001 on Medium]]></description>
        <link>https://medium.com/@g.proxy0001?source=rss-12e8492838f2------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*sQia75TlpvBjX_DeNAt4fg.png</url>
            <title>Stories by proxy0001 on Medium</title>
            <link>https://medium.com/@g.proxy0001?source=rss-12e8492838f2------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 19 May 2026 15:51:34 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@g.proxy0001/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[什麼是 AutoML？]]></title>
            <link>https://medium.com/@g.proxy0001/%E4%BB%80%E9%BA%BC%E6%98%AF-automl-c337e9ce243b?source=rss-12e8492838f2------2</link>
            <guid isPermaLink="false">https://medium.com/p/c337e9ce243b</guid>
            <category><![CDATA[model]]></category>
            <category><![CDATA[automl]]></category>
            <category><![CDATA[pycaret]]></category>
            <dc:creator><![CDATA[proxy0001]]></dc:creator>
            <pubDate>Fri, 13 Dec 2024 17:08:50 GMT</pubDate>
            <atom:updated>2024-12-13T17:25:45.200Z</atom:updated>
            <content:encoded><![CDATA[<h4>AutoML 簡單說就是一鍵生成機器學習模型，將開發模型中耗時、反覆的工作流程自動化，做到快速又大規模的模型開發並選出最佳模型。</h4><p>AutoML，顧名思義就是自動化生成機器學習模型，將原本資料科學家要寫 Code 處理的邏輯自動處理完，大幅簡化開發機器學習模型的工作量。了解 AutoML 的處理邏輯，大致上就可以了解模型開發的整個流程。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/707/1*lph9C7yRSezTe99PtYGpCQ.png" /><figcaption>來源：<a href="https://learn.microsoft.com/en-us/azure/machine-learning/concept-automated-ml?view=azureml-api-2#when-to-use-automl-classification-regression-forecasting-computer-vision--nlp">What is automated machine learning (AutoML)?</a></figcaption></figure><p>AutoML 的發展已經相當成熟，較為知名的產品像 <a href="https://www.datarobot.com/">DataRobot</a>、<a href="https://h2o.ai/">H2O.ai</a>、<a href="https://azure.microsoft.com/en-us/solutions/automated-machine-learning">Microsoft Azure Automated Machine Learning</a> 等，基本上雲端大廠都有做，以及許多的開源套件如 <a href="https://github.com/automl/auto-sklearn">Auto-Sklearn</a>、<a href="https://github.com/EpistasisLab/tpot">TPOT</a>、<a href="https://github.com/pycaret/pycaret">PyCaret</a> 等等。</p><p>以下以 <a href="https://pycaret.gitbook.io/docs">PyCaret</a> 為例，他們家的文檔很清晰，可以很容易理解 AutoML 可以做什麼、做了哪些事情。</p><h3>PyCaret 可以訓練哪些模型？</h3><p>先看看 <a href="https://pycaret.org/">PyCaret</a> 的官網的文檔，其中的 <a href="https://pycaret.gitbook.io/docs/get-started/tutorials">Tutorials</a> 有六篇教學，對應五種 Modules ，分別是分類、迴歸、分群、異常檢測、時序，其中分類又可以分成兩種子類別：二元分類跟多元分類。看起來很少，但其實已經涵蓋常見的類型了。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tT0hr6WiIwgim-VaWcV3hQ.png" /><figcaption>來源：<a href="https://pycaret.gitbook.io/docs/get-started/tutorials">https://pycaret.gitbook.io/docs/get-started/tutorials</a></figcaption></figure><p>PyCaret 主要是針對結構化數據的機器學習自動建模，不支援圖片、音訊等非結構化的數據。其中分類跟回歸就是一般說的監督式學習，分群跟異常檢測是所謂的非監督式學習，而時序也算是監督式學習，但更為重視時間因素的影響。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pUG96Ja1W0MCcB0xsfdB3w.png" /><figcaption>PyCaret 的五種模型訓練任務</figcaption></figure><p>監督式跟非監督式最大的差別是訓練資料的準備，監督式的需要有答案 (labeled data) 才能訓練，但非監督式的不用。一般來說，監督式學習具有更高的準確性，因為它從具有已知答案的標記範例中學習；而非監督式學習，因為沒有正確答案，準確性的評估更加困難且主觀。詳細可以看這篇：<a href="https://www.scribbr.co.uk/using-ai-tools/supervised-unsupervised-learning/">Supervised vs. Unsupervised Learning: Key Differences</a>。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lZYwsAOWUOqW9Q-F_bDlOQ.png" /><figcaption>來源：<a href="https://www.scribbr.co.uk/using-ai-tools/supervised-unsupervised-learning/">Supervised vs. Unsupervised Learning: Key Differences</a></figcaption></figure><h3>PyCaret 的使用步驟</h3><p>接下來我們照著 PyCaret 的 <a href="https://pycaret.gitbook.io/docs/get-started/quickstart#classification">quick start</a> 的使用步驟，來看看具體怎麼用，基本上步驟都差不多，就以 Classification 為範例說明：</p><ol><li>Setup：建立實驗任務</li><li>Compare Models：建構並比較多個模型，選出最好的</li><li>Analyze Model：評估最終模型是否 ok</li><li>Predictions：用模型進行預測</li><li>Save the model：保存模型</li></ol><p>直接上 code 👇</p><pre># load sample dataset 讀取範例資料<br>from pycaret.datasets import get_data<br>data = get_data(&#39;diabetes&#39;)<br><br># Setup 建立實驗<br>from pycaret.classification import ClassificationExperiment<br>s = ClassificationExperiment()<br>s.setup(data, target = &#39;Class variable&#39;, session_id = 123)<br><br># Compare Models 自動建構並比較多個模型<br>best = s.compare_models()<br><br># Analyze Model 評估最終模型是否 ok<br>s.evaluate_model(best)<br><br># Predictions 用模型進行預測<br>predictions = s.predict_model(best, data=data) # 這邊直接用訓練資料嘗試預測<br><br># Save the model 保存模型<br>s.save_model(best, &#39;my_best_pipeline&#39;)<br><br># Load the model 讀取模型<br>loaded_model = s.load_model(&#39;my_best_pipeline&#39;)</pre><p>就醬？對，就這樣，官網的 <a href="https://pycaret.gitbook.io/docs/get-started/quickstart">Quickstart</a> 就醬而已。其實使用步驟很簡單，透過 setup 建立實驗，給定目標類型跟訓練資料，就可以透過不同的演算法，自動訓練出多個模型並進行比較，找到最好的一個。運行 evaluate_model，則會產出圖表跟指標，用來人工評估模型是否可以用於生產環境。評估 OK 之後，就可以用這個模型來預測啦！</p><p>監督式學習的模型，在訓練時要設定目標，也就是訓練資料的其中一個欄位為標記資料 (label)，也就是答案的意思，讓模型根據有答案的資料，學習如何預測。訓練好之後，就可以用沒有答案的資料，進行預測，模型就會給出預測結果。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nOerRlsJEiITgPy8VUxJ9g.png" /><figcaption>來源：<a href="https://pycaret.gitbook.io/docs/get-started/quickstart#classification">https://pycaret.gitbook.io/docs/get-started/quickstart#classification</a></figcaption></figure><p>看看過程比較了哪些模型，證明沒有偷懶：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/742/1*XRG1nCzoTVq8kVATsZwRpA.png" /><figcaption>來源：<a href="https://pycaret.gitbook.io/docs/get-started/quickstart#compare-models">https://pycaret.gitbook.io/docs/get-started/quickstart#compare-models</a></figcaption></figure><p>可以看到 compare_models 自動用了多種不同的演算法訓練模型，並比較哪個分數比較高，選出最佳的。</p><h3>AutoML 簡化了哪些部分？</h3><p>一般來說，數據科學家在設計模型時，主要會經過這些步驟：</p><ol><li>準備訓練資料</li><li>進行前處理 (Data Preprocessing)</li><li>用不同演算法建構模型，逐個評估比較 (Compare Models)</li><li>用不同的方法優化模型，逐個評估比較 (Optimize)</li><li>重複上述步驟找到最佳模型</li><li>保存模型</li></ol><p>而 AutoML 就是把 Data Preprocessing、Compare Models、Optimize 這些步驟都自動化了 (原本動輒要數百行 code)，整個過程簡化變成這樣：</p><ol><li>準備訓練資料</li><li>自動訓練並比較，找到最佳模型</li><li>人工評估最終模型是否 OK</li><li>保存模型</li></ol><p>自動化的好處在於，常見、重複的工作都可以幾行代碼就解決掉，但如果遇到不支援的地方，依舊得要自己客製化的處理，簡單的可以調整設定，複雜的就要寫代碼了。其中 AutoML 最複雜的地方有兩個，第一是 Data Preprocessing，第二是 Optimize。PyCaret 預設就啟用 Data Preprocessing，如果沒有特殊需求，可以無腦使用。但 Optimize 要再另外寫一下，使用同樣不難，也是幾行 code 就完成。</p><pre># load dataset 讀資料<br>from pycaret.datasets import get_data <br>data = get_data(&#39;diabetes&#39;) <br><br># init setup 建立實驗<br>from pycaret.classification import *<br>clf1 = setup(data, target = &#39;Class variable&#39;) <br><br># compare models 自動建構並比較多個模型，選出最佳的五個<br>top5 = compare_models(n_select = 5) <br><br># tune models 進行超參數優化<br>tuned_top5 = [tune_model(i) for i in top5]<br><br># ensemble models 對資料集成，使用 Bagging 或 Boosting 的方法<br>bagged_top5 = [ensemble_model(i) for i in tuned_top5]<br><br># blend models 對模型集成，使用 Blending 的方法<br>blender = blend_models(estimator_list = top5) <br><br># stack models 對模型集成，使用 Stacking 的方法<br>stacker = stack_models(estimator_list = top5) <br><br># automl 自動比較，找出最佳的模型<br>best = automl(optimize = &#39;Recall&#39;)<br>print(best)</pre><p>看起來更多行了，但其實就是調用各種模型優化的方法，然後自動比較中間各種優化方法所額外產生的模型，找出最好的一個。如果對<a href="https://pycaret.gitbook.io/docs/get-started/functions/optimize">模型優化</a>跟<a href="https://pycaret.gitbook.io/docs/get-started/preprocessing">前處理</a>有興趣，可以看看 PyCaret 的文檔，除了使用方式，還附有基本說明。</p><p>最後統整一下，整個模型設計的大流程：</p><ol><li>準備訓練資料</li><li>進行前處理 (Data Preprocessing)</li><li>用不同演算法建構模型，逐個評估比較 (Compare Models)</li><li>用不同的方法優化模型，逐個評估比較 (Optimize)</li><li>人工評估最佳模型是否 OK (Analyze Model)</li><li>用模型進行預測！ (Predictions)</li></ol><p>以上是 AutoML 的簡單介紹，使用難度不高，但易學難精。這篇主要是了解整個模型設計的基本步驟，每個步驟都還有許多內容可以探討，可以另外再寫好幾篇 😅，這篇先到這裡，下次見摟！</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c337e9ce243b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[機器學習的基本概念]]></title>
            <link>https://medium.com/@g.proxy0001/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5-bf7869df5059?source=rss-12e8492838f2------2</link>
            <guid isPermaLink="false">https://medium.com/p/bf7869df5059</guid>
            <category><![CDATA[optimization]]></category>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[reinforcement-learning]]></category>
            <dc:creator><![CDATA[proxy0001]]></dc:creator>
            <pubDate>Tue, 26 Nov 2024 13:09:47 GMT</pubDate>
            <atom:updated>2024-12-02T03:21:20.793Z</atom:updated>
            <content:encoded><![CDATA[<h4>機器學習本質上就是找出一個函式，讓我們輸入資料後，可以輸出我們想要的資料結果。</h4><h3>什麼是機器學習模型？</h3><p>機器學習是一種方法，透過訓練資料建構模型，再用模型來預測答案。那什麼是模型呢？其實模型跟預測的概念，生活中我們早已運用自如，例如今天會不會下雨，透過經驗，我們腦袋裡會有一個簡單的規則：烏雲很多 =&gt; 會下雨，出太陽 =&gt; 不會下雨，雖然簡單，但這就是一個可以用來”預測“晚點是否下雨的模型。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8ClI-tP0HPDnSyyO8gqEjw.png" /><figcaption>模型訓練跟模型推理的過程</figcaption></figure><blockquote>規則複雜難以梳理，就可以用機器學習的方法建構模型。</blockquote><h3>什麼時候該用機器學習？</h3><p>如果上述的預測下雨模型準確率夠高的話，其實不需要用機器學習，直接用 if-else 的條件式就可以完成這個模型了，但如果要考慮更多的因素，包含溫度、濕度、風速、能見度等等，變因愈多，之間的關係也愈趨複雜時，就可以用機器學習的方法來建構模型。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*43nZLdTc5b1Qb3XqiuQiDQ.png" /><figcaption>簡單到複雜一點的模型</figcaption></figure><blockquote>Machine Learning ≈ Looking for a Function</blockquote><p>用工程的方式說，模型就是一個很複雜的函式，輸入 X，回答 Y，只是這個函式的邏輯不是手寫的，而是透過資料訓練得到的。而機器學習的過程就是在找尋這個函式。</p><p>既然是函式，最重要的就是定義輸入跟輸出了，也就是定義問題。</p><h3>模型具體長什麼樣？</h3><p>這裡簡單的用 Scikit-learn 的實作方式舉例，如何客製一個 Predictor，並可以透過它訓練出模型，接著用其預測：</p><p>首先準備一個預測器，可以依照 Scikit-learn 的方式自定義，也可以直接用 Scikit-learn 內建好的，使用方式是一樣的。</p><pre>class Predictor(BaseEstimator):<br>    # 初始化，其中的參數就是所謂的&quot;超參數&quot;    <br>    def __init__(self, param1=1, param2=2):<br>        ...<br><br>    # 訓練模型的函式，使用時會放入訓練資料，X 是多個特徵，y 是答案<br>    def fit(self, X, y):<br>        ...<br>        return self<br>    <br>    # 用來預測的函式，使用時會放入跟訓練資料格式一樣的 X，然後回答預測答案<br>    def predict(self, X):<br>        ...<br>        return prediction</pre><p>Predictor 是一個 Class，實作了 fit 跟 predict 兩個函式，首先初始化成 Instance，然後執行 fit() 進行訓練，之後就可以用 predict() 進行預測：</p><pre># 準備訓練資料<br>X_train = [[0, 0], [2, 2]] # 特徵<br>y_train = [0.5, 2.5] # 標籤 (答案)<br><br># 初始化，可指定超參數<br>predictor = Predictor(param1=1)<br># 透過訓練資料訓練模型<br>model = predictor.fit(X, y)<br><br># 準備預測資料<br>x_prediction = [[1, 1]]<br># 用模型進行預測，得到預測結果<br>prediction = model.predict(x_prediction) # prediction = 1.5</pre><p>如果不太熟悉程式碼，可以看以下的圖解說明：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UocjAJILLHp1PvJCcZa2lQ.png" /><figcaption>模型如何建構出來的？</figcaption></figure><p>一個訓練好的模型，就是指執行過 fit() 的 Instance (實例化之後的 Class)，透過 fit 方法，把一些學習到的資訊存在 Instance 內部，直到下次執行 predict 的時候，運用這些資訊執行推理。</p><h3>機器學習有哪些類別？</h3><p>機器學習的範疇比較廣，一般又可分為以下這幾種，每一種都有他適合應用的情境，解決的問題也不盡相同：</p><ul><li>監督式學習</li><li>非監督式學習</li><li>半監督式學習</li><li>強化學習</li><li>深度學習</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/842/1*8smD61vrFH3Zg-LUeJJoiA.png" /><figcaption>來源：<a href="https://medium.datadriveninvestor.com/machine-learning-in-10-minutes-354d83e5922e">Machine Learning in 10 minutes</a></figcaption></figure><p>監督式學習跟非監督式學習的最大差別是，訓練資料裡有沒有標籤 (答案)。監督式是透過訓練資料裡的資料跟標籤 (答案)，學習在沒有答案的情況下，如何預測答案。而非監督式學習，因為資料裡沒有答案可以參考，主要是透過觀察資料樣貌，找出哪些資料較為相似、根據隱含的關聯規則進行預測。半監督式學習則是混合兩種作法。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/1*9hB5SsJjJD5MHQhLTxv8ww.png" /><figcaption>來源：<a href="https://u9534056.medium.com/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E4%BB%BB%E5%8B%99-%E7%9B%A3%E7%9D%A3%E5%AD%B8%E7%BF%92-%E5%8D%8A%E7%9B%A3%E7%9D%A3%E5%AD%B8%E7%BF%92-%E7%84%A1%E7%9B%A3%E7%9D%A3%E5%AD%B8%E7%BF%92-9b75972f91d6">機器學習任務：監督學習/半監督學習/無監督學習</a></figcaption></figure><p>強化學習是透過不停的嘗試，來學會某些技能，不需要有標記數據，常應用於遊戲 AI、最佳化問題等情境。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0vbUuXk1lFRp7BRPH1--Ug.png" /><figcaption>來源：<a href="https://easyai.tech/ai-definition/reinforcement-learning/">强化学习-Reinforcement learning | RL</a></figcaption></figure><p>深度學習主要指以類神經網路為架構的方法，跟經典機器學習除了架構上的差別之外，應用上的差別主要在於，可以自行提取出有價值的特徵，更適合應用在非結構化數據、複雜問題的處理。應用面較廣，許多情境都可以考慮用深度學習的方法處理。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JivelQE8P34k0XOgHXfZ4w.png" /><figcaption>來源：<a href="https://medium.com/mr-lius-murmur/ai-%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98-i-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-vs-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-98b1ce9123a3">AI 學習筆記 #1: 機器學習 vs. 深度學習</a></figcaption></figure><h3>機器學習可以解決哪些問題？</h3><p>可以解決哪些問題，也就是要對輸出的 Y 有哪些種類進行分類，這邊以上述的分類為主，往下列舉常見的分類，並以天氣的情境為例，舉出一些不同類型下的範例問題跟常見的做法：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DtqvmDqD7j0H252S_K0_4Q.png" /><figcaption>問題類型與常見做法</figcaption></figure><h3>不同的做法適合用在哪？</h3><p>不同的做法又有它較為適合的情境，根據狀況，還可以選擇用單一的技術或者混合多種技術進行實作，實務上要根據情境需求、問題的複雜度、開發成本等等做技術評估，可以從以下這些開始考慮，以及最重要的，跟你的技術團隊討論！</p><ul><li>非結構化數據通常會用深度學習處理。</li><li>監督式學習常用在分類、數值預測等較為精準的單一問題。</li><li>非監督式學習通常應用在特徵工程、數據探索等過程中。</li><li>半監督式學習適合用在有少量的已標記資料，但有大量未標記的資料。</li><li>強化學習適合用在探索未知的情境，例如遊戲 AI、自動化控制等。</li><li>LLM 常應用在處理廣泛、模糊、多元情境的需求，例如智能助手。</li><li>最佳化問題，例如參數推薦、路徑規劃、排程規劃，可以透過數學規劃、最佳化演算法求解，也可以搭配機器學習的方法導出目標函式。</li><li>複雜的系統 / 模型，會將問題拆解，分別或者混合多種技術一起處理。</li></ul><p>如果有哪裡不太理解的，歡迎留言跟我說，也可以閱讀以下的參考資料，都介紹得十分完整跟清楚。</p><p>參考資料：</p><ul><li>⭐ <a href="https://medium.datadriveninvestor.com/machine-learning-in-10-minutes-354d83e5922e">Machine Learning in 10 minutes</a></li><li>⭐️ <a href="https://vas3k.com/blog/machine_learning/">Machine Learning for Everyone</a></li><li>️️⭐️ <a href="https://www.superannotate.com/blog/supervised-learning-and-other-machine-learning-tasks#types-of-machine-learning-models">What is supervised learning? Machine learning tasks [Updated 2024]</a></li><li>⭐️ <a href="https://www.youtube.com/watch?v=Ye018rCVvOo&amp;list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&amp;index=2">【機器學習2021】預測本頻道觀看人數 (上) — 機器學習基本概念簡介</a></li><li><a href="https://www.onesoftech.com/Blog/%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7ai/%E4%BB%80%E9%BA%BC%E6%98%AF%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%9A%84%E6%9C%AC%E8%B3%AA">什麼是機器學習的本質?</a></li><li><a href="https://activewizards.com/blog/machine-learning-mindmap/">Machine Learning Mindmap</a></li><li><a href="https://scikit-learn.org/1.5/developers/develop.html">Developing scikit-learn estimators</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bf7869df5059" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[生成式 AI 跟以往有何不同？]]></title>
            <link>https://medium.com/@g.proxy0001/%E7%94%9F%E6%88%90%E5%BC%8F-ai-%E8%B7%9F%E4%BB%A5%E5%BE%80%E6%9C%89%E4%BD%95%E4%B8%8D%E5%90%8C-7a58061aa0c5?source=rss-12e8492838f2------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a58061aa0c5</guid>
            <category><![CDATA[traditional-ai]]></category>
            <category><![CDATA[genai]]></category>
            <dc:creator><![CDATA[proxy0001]]></dc:creator>
            <pubDate>Mon, 04 Nov 2024 03:03:13 GMT</pubDate>
            <atom:updated>2024-11-04T03:03:13.698Z</atom:updated>
            <content:encoded><![CDATA[<h4>現在大家對 AI 的想像，大部分都是 ChatGPT，那在這之前呢？在這之前的 AI 長什麼樣？</h4><p>不論是在技術或者應用上，生成式 AI (Generative AI) 都跟以往大不相同，這邊根據 <a href="https://cloud.google.com/docs/ai-ml/generative-ai/generative-ai-or-traditional-ai">Google Cloud</a> 的用詞，將過往的做法跟應用稱之為 Traditional AI。舉個例子說明兩者的差別，Traditional AI 可以用來分辨一張圖片是貓或狗，但 Generative AI 是隨便就畫一隻動物給你。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UtvY6wFUHG1DZjWrHA_-Yw.png" /><figcaption>Traditional AI vs Generative AI (ChatGPT 生成)</figcaption></figure><h4>Traditional AI 的侷限</h4><p>Traditional AI 的主要做法是，定義問題 → 收集資料 → 透過演算法進行模型訓練，進而讓模型能夠回答特定問題。演算法主要又分兩種，機器學習 (ML) 跟深度學習 (DL)，深度學習具有自行從資料中擷取特徵的能力，因此可以面對更為複雜的情境。而第一個步驟：定義問題，就是在縮限模型只能處理特定的問題。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JivelQE8P34k0XOgHXfZ4w.png" /><figcaption>圖片來源：<a href="https://medium.com/mr-lius-murmur/ai-%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98-i-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-vs-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-98b1ce9123a3">AI 學習筆記 #1: 機器學習 vs. 深度學習</a></figcaption></figure><p>為什麼是特定的問題？因為問題愈模糊，所需要的資料就愈廣泛、模型的設計也會變得更複雜。實務應用上，模型的精準度跟可行性是重要的，最大的痛點，第一是上哪去收集資料？第二，就算有全世界的資料，技術也不一定有可行性，怎麼樣才能讓電腦處理全世界的資料跟回答無邊無際的問題？</p><h4>Traditional AI 的應用</h4><p>以往大多是針對單一問題進行建模，模型規模不大，例如：</p><ol><li>數值預測 (regression)：生產線的良率預測、房屋價格預估</li><li>分類判別 (classification)：垃圾郵件判斷、瑕疵檢測</li><li>時序預測 (time series forecasting)：銷售預測、房價趨勢預測</li><li>數據分群 (clustering)：客戶樣貌分組</li><li>異常檢測 (anomaly detection)：異常訊號檢測</li><li>最佳化問題 (optimization problem)：設備參數最佳化、生產排程規劃</li><li>推薦系統 (recommendation system)：商品推薦、精準行銷</li></ol><p>上面這些基礎應用，使用時得餵入特定的資料，才能回答特定的答案，比較沒有 AI 感。進階點做到像人臉辨識、自動駕駛這樣複雜的情境，就會更有 AI 的感覺，不過相對的，需要的資料更多、技術難度也更高、開發成本差了不只百倍以上，即使這樣，依舊是為特定任務打造的 AI。</p><h4>Generative AI 帶來的技術顛覆</h4><p><a href="https://aws.amazon.com/tw/local/hongkong/generative-ai/genai-blog-100/">生成式人工智能（GenAI）新世界：過去、現在和未來</a>，這篇文章點出了 2017 年的 “Attention is All You Need” 這篇論文所帶來的重要技術突破，該論文提出了 Transformer 架構以及 Attention 的概念，大幅提升並行計算的效率。這有什麼差別？模型變大了，處理非特定問題變得可能。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vWDavRE9cYt_XK_bisdbxA.png" /><figcaption>圖片來源：<a href="https://medium.com/mdbros/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8-transformer-%E6%A8%A1%E5%9E%8B%E5%AF%A6%E7%8F%BE%E8%87%AA%E7%84%B6%E8%AA%9E%E8%A8%80%E8%99%95%E7%90%86%E7%9A%84%E7%AA%81%E7%A0%B4-fc73ff8ab82b">如何利用 Transformer 模型實現自然語言處理的突破</a></figcaption></figure><p>Transformer 模型出現之後，讓 NLP 的領域得到了大幅進展，以往用循環神經網路 (RNN) 實現的缺點就是，當文字太多時，前面的內容就會被模型所淡忘。而 Transformer 模型，不僅能更好地處理文字之間的關係，更大幅提升了效率，這代表我們可以將更多、更多的資料餵給模型，也就衍伸出了大語言模型 (LLM)。</p><p>LLM 是一種預訓練模型，濃縮了近乎全世界的資訊，可以根據上下文，透過語言的媒介，回答非特定的問題，打破了以往需要先有資料的前提。這帶來什麼改變？不需要準備訓練資料，且可以處理不精確的問題。用 Prompt Engineering 的方式控制 LLM 的回應，在面對相對模糊、發散的應用情境跟問題時，反而更加可行，也就是所謂的 AI Agent。</p><p>AI Agent 同時也帶給軟體開發一種新的思維。以往的軟體都是從小的邏輯一個一個堆疊成複雜的處理引擎，但 AI Agent 是反其道而行，透過引入一個懂很多知識的泛用模型，直接針對較為發散的同類型問題進行處理，特別適合在情境變化性高、精準度要求較低、有人可以輔助調整的場合中應用，例如客服、知識檢索、會議紀錄、摘要等等，而這些情境也是過往的做法難以做到的。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iORUkuT0mlWtQLvX59WZLQ.png" /><figcaption>圖片來源：<a href="https://www.youtube.com/watch?v=SNZSm02_fpU">The Evolution of AI: Traditional AI vs. Generative AI</a></figcaption></figure><h4>Generative AI 的應用面向</h4><p>而 Generative AI 不只通過 LLM 帶來了新的技術架構可能性，也在各種不同應用情境上，有了顯著的突破跟進展，文字、程式碼、圖像、語音、影片、3D 等不同的資訊載體，也都可以透過 AI 生成：圖像生成的 <a href="https://github.com/CompVis/stable-diffusion?tab=readme-ov-file">Stable Diffusion</a> 跟 <a href="https://www.midjourney.com/home">Midjourney</a>、寫程式的 <a href="https://github.com/features/copilot">GitHub Copilot</a>、AI 作曲工具 <a href="https://musicfx.org">MusicFX</a> 等等，各式各樣的應用開始如雨後春筍般出現。而整個技術發展，也透過互相借鑑學習、拆解組合，發展成新的突破。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xqxuoRYLBT2cHmt-arFF5w.png" /><figcaption>圖片來源：<a href="https://www.sequoiacap.com/article/generative-ai-a-creative-new-world/?trk=cndc-detail">Generative AI: A Creative New World</a></figcaption></figure><h4>Traditional AI 還有用嗎？</h4><p>有的。Generative AI 很有顛覆性，但不代表所有的問題都適合用他解決，另一點是，舊有的技術架構也不可能說改就改，需要考慮導入的成本。</p><p>精確、單一的問題，類似鳩尾花分類的這種題目，用 <a href="https://scikit-learn.org/stable/">Scikit Learn</a> 提供的機器學習方法就可以做到了，準備一份合適的資料，訓練一個小模型，成本低、效果好、容易開發維護。但如果要做企業內部的知識檢索，LLM 搭配 RAG (Retrieval-Augmented Generation) 就會比較合適。</p><p>新的技術帶來新的可能性，但最終還是要根據問題跟資源，決定合適的解決方案。</p><p>參考資料：</p><ul><li><a href="https://aws.amazon.com/tw/local/hongkong/generative-ai/genai-blog-100/">生成式人工智能（GenAI）新世界：過去、現在和未來</a></li><li><a href="https://www.youtube.com/watch?v=SNZSm02_fpU">The Evolution of AI: Traditional AI vs. Generative AI</a></li><li><a href="https://cloud.google.com/docs/ai-ml/generative-ai/generative-ai-or-traditional-ai">When to use generative AI or traditional AI</a></li><li><a href="https://medium.com/ai-academy-taiwan/chatgpt%E9%A9%9A%E8%89%B7%E7%9C%BE%E4%BA%BA%E7%9A%84%E8%83%8C%E5%BE%8C-nlp%E9%81%8B%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92%E7%9A%84%E5%B9%BE%E5%80%8B%E9%87%8D%E8%A6%81%E7%99%BC%E5%B1%95-f73dd1154e6e">ChatGPT驚艷眾人的背後 : NLP運用深度學習的幾個重要發展</a></li><li><a href="https://medium.com/mdbros/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8-transformer-%E6%A8%A1%E5%9E%8B%E5%AF%A6%E7%8F%BE%E8%87%AA%E7%84%B6%E8%AA%9E%E8%A8%80%E8%99%95%E7%90%86%E7%9A%84%E7%AA%81%E7%A0%B4-fc73ff8ab82b">如何利用 Transformer 模型實現自然語言處理的突破</a></li><li><a href="https://medium.com/mr-lius-murmur/ai-%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98-i-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-vs-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-98b1ce9123a3">AI 學習筆記 #1: 機器學習 vs. 深度學習</a></li><li><a href="http://giantpandacv.com/academic/%E7%AE%97%E6%B3%95%E7%A7%91%E6%99%AE/%E6%89%A9%E6%95%A3%E6%A8%A1%E5%9E%8B/%E5%BD%93%20TransFormer%20%E9%81%87%E5%88%B0%20Diffusion/">Scalable Diffusion Models with Transformers</a></li><li><a href="https://ai-scholar.tech/zh/articles/transformer/MusicLM">[MusicLM]谷歌开发的文本到音乐生成模型</a></li><li><a href="https://blog.infuseai.io/rag-retrieval-augmented-generation-introduction-a5854cb6393e">RAG 檢索增強生成 — 讓大型語言模型更聰明的秘密武器</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a58061aa0c5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[不知不覺成為 AI 產品經理]]></title>
            <link>https://medium.com/@g.proxy0001/%E4%B8%8D%E7%9F%A5%E4%B8%8D%E8%A6%BA%E6%88%90%E7%82%BA-ai-%E7%94%A2%E5%93%81%E7%B6%93%E7%90%86-bb8f5a8fc2a9?source=rss-12e8492838f2------2</link>
            <guid isPermaLink="false">https://medium.com/p/bb8f5a8fc2a9</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[product-management]]></category>
            <dc:creator><![CDATA[proxy0001]]></dc:creator>
            <pubDate>Tue, 29 Oct 2024 07:30:39 GMT</pubDate>
            <atom:updated>2024-10-29T07:30:39.487Z</atom:updated>
            <content:encoded><![CDATA[<h4>因著工作上的需要，研究了不少關於數據分析、機器學習、Big Data、MLOps、LLM 的技術與知識，數年之後，忽然發現這好像就是 AI。</h4><p>在 Medium 第一篇文章，想了半天還是介紹一下自己好了，說說自己為何開始寫部落格，以及預計寫哪些東西。標題之所以提到 AI 產品經理，是因為打算將工作上的學習與成長做個紀錄，所以會簡單講一下自己的過往經歷。而不知不覺則是因為，我從來沒想過自己會變成這樣的角色 😅。</p><figure><img alt="不知不覺成為 AI 產品經理" src="https://cdn-images-1.medium.com/max/1024/1*Q6IPZuu3b4Wq9QN2TcmkcQ.jpeg" /><figcaption>拿著標題問 ChatGPT 生成的圖片</figcaption></figure><h4>為什麼開始寫部落格？</h4><p>最近從待很久的公司離開了，趁著這段時間，打算開始寫文章，紀錄一下自己過往的經驗與學習。工作 10 幾年，默默地跨了非常多的職能（技能樹亂點一通）。跨領域的經驗在找工作時，有時候會是個劣勢，很難讓人快速了解並信任你的能力跟專長，尤其是技術相關的領域。想了想，還是把所知所學記錄一下，能夠比較好的呈現。</p><h4>怎麼變成 AI 產品經理的？</h4><p>剛踏入軟體產業時，我是一名軟體工程師，初期做些小網站，前後端都弄，後來加入到新創，專心做了幾年的產品前端開發，隨著愈來愈深入地參與產品，除了管理跟規劃之外，也負責處理一些沒人負責的工作，寫 code 的時間愈來愈少，開會、討論、研究、規劃，逐漸變成日常。不知不覺間，我跨了相當多的領域，一個產品開發團隊不同職能做的事情，我幾乎都碰過，包含前端開發、後端開發、UI/UX 設計、軟體測試、帶 Scrum、原型設計，競品研究、技術研究、產品發展策略等等（加上非軟體業的話還有更多 😅）。也就是在這段時間，我研究了不少關於數據分析、機器學習、Big Data、MLOps、LLM 的技術與知識，數年之後，忽然發現這好像就是 AI。</p><h4>之後打算寫些什麼？</h4><p>想要把我在做產品規劃跟技術研究時，所理解的脈絡跟重點整理成文章，初期會以 ML / AI 相關的內容為主，讓非相關技術人員（例如 PM、一般工程師）也可以理解、開始想像如何應用。</p><p>發現自己默默地累積了許多關於 ML / AI 的知識之後，也意外的發現，許多人對這個領域是毫無概念的，如果你跟一個軟體工程師說：「誒，幫我寫個模型來預測下個月的營業額吧！」大概率你會得到一個 🙄。即使你跟一個資料科學家說：「誒，現在 GenAI 很火，幫我弄個自動生成頭像吧！」你還是有可能得到一個委婉的拒絕 🤣。隔行如隔山，雖然同樣都是寫 code，技術領域落差還是滿大的，更不用說連基本概念都沒有的情況下，真的是毫無頭緒、無從開始。那我就在想，那我是怎麼會的？</p><blockquote>掌握脈絡的方法是，刻意放掉細節。</blockquote><p>人的腦袋有限，短時間內要掌握所有資訊，並組織出脈絡跟重點是不容易的，我的做法是刻意放掉細節。工程師有個習慣是，會把細節鉅細彌遺地研究清楚，因為工程師要負責確保可以執行。但規劃時要反過來，優先掌握重點，再逐步處理細節。我覺得我這部分掌握的滿好的，可以很快的抓到重點，也希望之後的內容可以如此呈現，閱讀的人也可以快速吸收。</p><h4>最後有什麼想說的？</h4><p>不論之後做什麼，都希望可以持續地產出文章。分享也好，表現自我也罷，身為 I 型人，部落格還是相對適合我的方式。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bb8f5a8fc2a9" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>