2022/09/03

隨機森林算法需要標準化嗎?

隨機森林是一種基於決策樹的算法,由多個決策樹組成以改進決策。它被稱為隨機森林,因為它是一個使用具有隨機性的樹的森林。這些多棵樹組合在一起進行預測。

標準化是在機器學習的數據準備階段完成的一種技術。使其具有一般分佈來組織數據集中數據的過程。這是一種縮放技術,其中值被重新縮放,因此它們的範圍在 0 和 1 之間 - 這也稱為 Min-Max 縮放。

為什麼不需要為隨機森林算法標準化數據?

通過標準化數據的過程是為了確保特定功能的優先級不高於另一個。這種技術在基於距離的算法中尤其重要,例如 K 最近鄰和 K-means,因為它需要歐幾里得距離。

然而,隨機森林算法不是基於距離的模型——它是基於樹的模型。隨機森林中的每個節點不比較特徵值,它只是拆分一個需要絕對值進行分支的排序列表。該算法基於對數據進行分區以進行預測,因此,它不需要標準化。

例如,決策樹在一個特徵上分割一個節點,這個特徵不受另一個特徵的影響,也不會影響另一個特徵。這意味著所有剩餘的特徵對分割沒有影響——所以可以說基於樹的算法對特徵的縮放不敏感。

2022/08/28

Mobility Data - Taiwan

利用了 Mobility Data 做出了熱力圖與流動方向,可以猜猜這是什麼時段







2022/08/20

人工智慧應用在 SEO

GPT-3 非常擅長編寫簡短而有創意的東西,它無法支持長篇的文章,而且通常會產生聽起來像虛構的內容。而 SEO 內容也幾乎不需要敘述,許多人工撰寫的 SEO 也包含不準確之處,這並不妨礙文章的排名。要求 GPT-3 生成 10 至 200 字的內容,加入少量的人工重新整理,可以在幾分鐘內產生類似人類的 SEO 內容。

SEO 長期以來一直是內容營銷的主要形式,但隨著越來越多的公司開始競爭,SEO 內容的邊際效應呈下降趨勢。人工智慧將可以大大加速這一過程。

大多數人工智慧寫作工具都有免費增值模式或非常友好的價格。使用門檻低:非技術人員可以用通俗易懂的語言使用該工具,並在幾秒鐘內獲得可行的結果。巨大的生產力提升和免費增值定價意味著一件事:我們將看到組織內自下而上採用人工智慧寫作工具。無論您進行何種類型的書面工作,人工智慧都將成為該過程的一部分

作為內容營銷人員,工作績效取決於是否比其他人寫得更好、更好的能力。內容營銷的某些部分不是很有趣。人工智慧可以釋放讓我們專注於更高槓桿、更熟練的事情的能力。

雖然今天的工作角色很有可能會因為人工智慧而改變——但這不見得是一件壞事?如果可以讓人們從事更熟練、更有趣、更有價值的工作呢?如果 AI 寫作工具成為寫字助力的最佳選擇呢?

2022/04/25

使用 FormKit 表單開發

處理複雜的表單成為每個開發人員的麻煩,使其成為前端開發的主要痛點之一。 對於控制多個狀態的需求催生了 Formik、React Hook Form、Veevalidate、Vuelidate、FormKit 等 Library。

FormKit 是一個可幫助在 Vue 中開發任何類型的表單。 FormKit 背後的團隊與 VueFormulate 相同。VueFormulate 為開發人員提供了一個單一的組件,該組件使用插槽來創建表單元素。 這種方法使編寫、處理和驗證表單變得容易。FormKit 是 VueFormulate 的增強版本,旨在幫助開發人員編寫出色的表單。

安裝 FormKit 後,FormKit 提供了兩種創建表單的簡單方法:使用 <FormKit/> 或從 JSON 模式生成表單。

使用 Tailwind CSS 進行樣式設置
如果您使用 Tailwind CSS,FormKit 不僅支持您需要的多種樣式,而且還提供了(@formkit/tailwindcss) 來幫助您使用模板編寫更簡潔的代碼,從而在配置中為您的表單設置主題文件。使用 Tailwind 指南的樣式可在 FormKit 文檔中找到。

國際化 (i18n)
FormKit 提供了 23 種不同的語言環境。

強大的架構
FormKit 將自己作為構建表單的框架,因為它提供了一個非常靈活的表單處理系統。每個對像對應一個 HTML 元素、組件。此模式能夠引用現有的 Vue 變量並渲染任何具有可編輯屬性和道具的標記或組件。

FormKit 有很好的文檔,大部分 API 都有很好的文檔和結構。這些文檔提供了完整的參考搜索功能,可幫助您找到所需的幾乎所有內容。

像 FormKit 提供了一個簡單的解決方案來解決現代 Web 開發中的主要表單問題,並讓開發人員可以愉快地完成原本乏味的任務。它既可以增強您的開發過程,又可以為用戶呈現極其強大的表單。

2022/04/23

VS Code 設置如何讓您成為更高效的數據科學家

1. 如果您使用格式化 linting 庫,例如 flake8 和 black,那麼 VS Code 可以在每次保存文件時自動格式化。還會在可能違反代碼樣式規則的代碼行中收到警告。

2.GitHub Copilot 是 GitHub 開發的最新 IDE 擴展,它使用 OpenAI 在代碼和文本上訓練的模型,可以提供非常有用的自動完成功能。

3. 您可能希望通過 SSH 連接的伺服器運行代碼。 幸運的是,可以通過 Remote SSH 連接,並且仍然繼續使用 VS Code 。

4. GitLens:通過顯示提交、識別每行代碼中的最新更改。

5. Rainbow CSV:為每列賦予顏色並提供提示以幫助完成 CSV。

6. Edit CSV:類似電子表格的視圖,可以更結構化的格式對其進行編輯,並輕鬆修改列或行。

7. 那些撰寫論文或書籍使用 LaTeX 的人,也可以依賴 VS Code。 您只需安裝 LaTeX Workshop 在 IDE 就可以使用的所有功能。

2022/04/17

Babel vs. TypeScript

什麼是TypeScript?

TypeScript 是 Web 開發人員中最常用的編程語言之一。 它並強制執行類型以幫助開發人員最大限度地減少常見錯誤。最重要的是,TypeScript 有自己的編譯器。 因此,它可以將 .ts 文件轉換為 .js 文件,並使瀏覽器更容易執行它們。

什麼是 Babel?
Babel 是另一個流行的編譯器,它將現代 JavaScript 語法和特性轉換為 ES5。 它具有語法轉換、Polyfilling、代碼轉換等重要功能。其中,polyfilling 是最有價值的功能之一,它確保您的應用程序在不同瀏覽器版本之間普遍兼容。此外,Babel 通過語法轉換器支持最新版本的 JavaScript,並允許開發人員使用新語法而無需等待瀏覽器支持。

雖然 Babel 和 TypeScript 是編譯器,但它們還是有一些顯著差異。 了解這些差異將幫助您找到最適合您項目的編譯器。

1. Babel 不支持類型檢查
Typescript 是強類型的,這意味著開發人員可以檢查其變量值的有效性。 但是,Babel 編譯代碼時不檢查類型。

2. TypeScript 不支持自動 polyfill
Babel 包含一個 polyfill,它有一個自定義的 regenerator 運行時和 core-js。這將模擬一個完整的 ES5+ 環境,用於應用程序。因此,使用 Babel 時會自動加載 polyfill。

3. Babel 比 TypeScript 更可擴展
如果你需要使用自定義轉換,Babel 是最好的解決方案。它支持各種插件來優化你的代碼,而 TypeScript 只支持它自己的具有較少功能的 Transformer API。

在性能方面,TypeScript 和 Babel 是相同的。儘管 TypeScript 需要一些額外的時間進行類型檢查,但它不會顯著影響性能。

你應該選擇什麼?
如前所述,TypeScript 編譯器和 Babel 都有自己的處理方式。因此,開發人員有很多意見,選擇一個而不是另一個可能是一項具有挑戰性的任務。

隨著 Babel 的最新更新,它有了很大的改進,唯一缺點是它無法進行類型檢查。您需要為此使用自定義流程。在所有其他方面,Babel 和 TypeScript 編譯器看起來都很相似,這就是為什麼許多開發人員建議一起使用它們的原因。

2022/04/10

如何批評同事

公開表揚,私下批評。如果您在表揚某人的行為,請讓他們的團隊知道!您不僅鼓勵他們這樣做,而且鼓勵所有目睹這種讚美的人。批評某人的行為會讓人情緒激動。有時會變成著重在聽者的想法,而不是關注你的反饋。

使用“我”語言而不是“你”語言。你是你自己感受和記憶的權威。通過專注於這些,您可以向其他人提供他們還沒有的信息,並且他們可以做出適當的反應。

盡可能具體。不要告訴別人他們很聰明,或者是個混蛋,或者他們在做 X 方面有問題。告訴他們你希望他們或多或少做的行為的具體例子。如果你沒有……那麼你可能不應該給出這個反饋。

站在同一邊。良好的反饋互動涉及兩個人,即給予者和接受者,試圖弄清楚該做什麼或多或少做什麼。如果您想反駁某人,請將這種爭論的衝動轉化為合作。提出問題而不是不同意,並說“是的,並且”而不是“否”。你們正在共同努力就事情的進展達成一致,並在出現負面反饋的情況下,調試並防止未來出現問題。

如果你太累了就停下來。當情緒激動時,就很難遵循這些指導方針。當發現自己太沮喪而無法清晰思考時,避免給出反饋,或者退出當前的反饋情況,直到能冷靜下來。反饋不佳可能比沒有反饋更糟糕。

當準備好提供反饋時,至少有兩個具體例子。如果他們記得做過你批評的事情,他們會想“我為什麼要這樣做?”並專注於原因。如果他們記得做過你正在表揚的事情,他們可以將表揚與這種行為聯繫起來。下次他們會記得良好的行為是一種選擇。

2022/04/05

10 大人工智慧職業趨勢

1. 人工智慧將重塑大部分工作角色:
可以肯定的是,人工智慧會創造更多的就業機會。但更重要的是,它將重新配置許多現有的工作角色。從快餐中心到醫療保健和農業,只要你說出它的名字,你就會感受到它的存在。例如,在雲計算中,人工智慧可以高精度地建議工作量,讓 DevOps 團隊構建測試並與可靠性工程 (SRE) 團隊協調。

2. 製造業中的人工智慧:
人工智慧在製造業中佔有重要地位,因為它一直是它的早期採用者。麻省理工學院的一項調查顯示,60% 的製造商已經在維護和質量控制這兩個最常見的領域使用人工智慧。然而,新技術仍然需要專業技能才能使其發揮作用。例如,協作機器人輔助可以協助人類完成複雜的任務,人類需要對其進行編程以教他們如何完成任務。毫無疑問,人們的技能發展顯然需要完成機器無法執行的任務。

3. 網絡安全中的人工智慧:
人工智慧在網絡安全領域也佔有一席之地,但識別更深層次的業務風險的工作只能由人類來完成。

4. 可靠性工程師角色:
SRE 角色將經歷巨大的轉變,AI 和 ML 以新的眼光定義它們。使用 ML,SRE 團隊可以繞過諸如為生產準備應用程序以及針對特定任務調整它們等任務。由於它需要許多排列和組合,也許人工智慧可以做得更好,讓人類去做更高價值的工作。

5. 機器人中的人工智慧
機器人技術是一項具有大規模替代人類的主要技術。人們可以放心地假設此就業市場只會擴大,對機器人工程師的需求不斷增長。

6.創意產業中的人工智慧
眾所周知,人工智慧不僅具有創造性,而且具有更高水平的創造性智能。然而,直覺和識別上下文的能力以及由此產生的情緒反應只屬於人。

7. 虛擬世界中的人工智慧:
元界不再是一個流行詞,而是一個擁有自己經濟的系統。因此,它有可能在其支持人工智慧的虛擬現實世界中打開大門,迎接各種機會。雖然還處於初級階段,但人工智慧、VR、遊戲、區塊鏈、5G 和增強現實(AR)等技術的交叉已經創造了很多機會,比如游戲設計師、NFT 策略師、區塊鏈設計師等。

8. 低代碼——無碼人工智慧
人工智慧中的低代碼無代碼趨勢對開發人員的工作構成了感知威脅。據專家介紹,它只會填補空白,而不是讓開發人員變得多餘。但要實現這一點,IT 和軟件工程師必須做出正確的舉動,遠離傳統的 IT 角色。他們應該承擔新的角色,例如與業務團隊合作以增強他們的技術洞察力。

9. 增強勞動力:
人工智慧的大規模採用將推動公司尋找培訓員工的方法,使他們能夠適應更高水平的抽象思維。

10. 培訓師、講解員角色的提升:
AI 需要人類來訓練和維持它。人工智慧適用於經過特定任務訓練。 NLP 和語音處理之類的過程需要人類為不同的會話上下文進行輸入,這將出現一些新的工作角色,作為支持人工智慧的系統和業務之間的接口。

2022/04/03

談到人工智慧,我們可以創造數據集嗎?

一項研究表明,使用合成數據訓練的圖像分類機器學習模型可以與在真實事物上訓練的機器學習模型相媲美。需要大量數據來訓練機器學習模型來執行圖像分類任務,例如識別自然災害後衛星照片中的損壞。然而,這些數據並不總是那麼容易獲得。如果一開始就存在可用數據,那麼生成數據集可能要花費數百萬美元,即使是最好的數據集也經常包含對模型性能產生負面影響的偏差。

為了規避數據集帶來的一些問題,麻省理工學院的研究人員開發了一種訓練機器學習模型的方法,該方法不是使用數據集,而是使用一種特殊類型的機器學習模型來生成極其逼真的合成數據,這些數據可以訓練另一個模型下游視覺任務。這種特殊的機器學習模型被稱為生成模型,與數據集相比,存儲或共享所需的記憶體要少得多。使用合成數據也有可能迴避一些關於隱私和使用權的擔憂,這些擔憂限制了一些真實數據的分發方式。還可以編輯生成模型以刪除某些屬性,例如種族或性別,這可以解決傳統數據集中存在的一些偏見。

生成合成數據
一旦生成模型在真實數據上進行了訓練,它就可以生成非常逼真的合成數據,幾乎與真實數據無法區分。訓練過程包括向生成模型展示數百萬張包含特定類別對象(如汽車或貓)的圖像,然後它會學習汽車或貓的外觀,以便生成類似的對象。生成模型學習如何轉換訓練它們所依據的基礎數據。如果模型在汽車圖像上進行訓練,它可以“想像”汽車在不同情況下的外觀然後輸出以獨特姿勢、顏色或尺寸顯示汽車的圖像。

比實物還要好
研究人員將他們的方法與其他幾個使用真實數據訓練的圖像分類模型進行了比較,發現他們的方法與其他模型一樣好,有時甚至更好。使用生成模型的一個優點是,理論上它可以創建無限數量的樣本。因此,研究人員還研究了樣本數量如何影響模型的性能。他們發現,在某些情況下,生成更多的獨特樣本會帶來額外的改進。使用生成模型也存在一些限制,在某些情況下,這些模型可以揭示可能帶來隱私風險的源數據,並且如果沒有經過適當的審計,它們可能會放大他們所訓練的數據集中的偏差。

2022/03/27

如何讓一家公司成功地使用 AI ?

美國主要的電力生產商 Vistra 為了使工廠高效運行,工人必須持續監控數百個不同的指標,追蹤溫度、壓力、氧氣水平以及泵和風扇的速度——而且他們必須實時進行調整。該過程涉及大量複雜性,即使是最熟練的人員也無法始終正確完成。為了應對這一挑戰,該工廠安裝了一個人工智慧的工具——它每 30 分鐘分析數百個輸入並生成建議。結果:效率提高了 1%。這聽起來可能不多,但它可以節省數百萬美元並減少溫室氣體排放。

各行各業的公司都在嘗試整合分析和數據來改善他們的運營。電子商務公司 Wayfair 是將其數據轉移到雲端並投資於機器學習的先行者。當 Covid-19 爆發時,消費者需求隨之發生快速變化,它能夠優化物流,不斷調整將哪些貨物發送到哪些港口。結果:入境物流成本驚人地降低了 7.5%。然而,並非所有公司都像 Wayfair 一樣成功。事實上,與使用人工智慧的普通公司相比,表現最好的公司可以在一半的時間內產生兩倍以上的影響。為什麼有些公司比其他公司做得更好?

為了回答這個問題,麥肯錫和麻省理工學院的 MIMO 研究了從汽車到採礦等行業的 100 家企業。通過採訪、研究和調查,試圖了解他們如何使用數字、數據分析和機器智能 (MI) 技術;他們想要達到的目標;以及他們如何追蹤他們的進展。通過查看 9 個類別(戰略、機會焦點、治理、部署、合作夥伴、人員、數據執行、預算和結果)的 21 個績效指標,將 100 家公司分為四類:領導者、計劃者、執行者和新興組織,以確定所採取的行動和所進行的投資之間的關係,以及有形和可持續的成果。

任何有志從數位技術中獲益的公司都有機會從最佳實踐方法中學習,無論是規劃者、執行者還是當今的新興公司。我們來探索成功的潛在驅動因素。

四個部分——領導者、規劃者、執行者和新興公司——不是每個人都應該立即努力成為領導者;相反,他們應該努力進入下一個更好的狀態。

領導者是表現最好的人,約佔樣本的 15%。通過在正確的地方進行投資,他們從先進的數位技術中獲得了最大的收益。領導者更有可能擁有明確的實施流程。他們也更有可能定期遵循該流程並不斷更新。因此,在所評估的 21 項關鍵績效指標中,有 20 項取得了顯著提升,並且在所有九個績效類別中均名列前 25%。

計劃者約佔數據集的四分之一。規劃人員通常具有很強的人際交往能力和豐富的數據執行專業知識;他們有條不紊,專注於做出正確的投資。然而,在許多情況下,這些還沒有得到回報,儘管有一些人即將加入領導者的行列。雖然一些規劃者能夠指出成功的實施,但一些規劃者無法破解擴展真正重要的方式。

大約三分之一的受訪者是執行者,他們利用不斷增長的專業知識庫,並與合作夥伴一起創建針對最有希望的機會的特定解決方案。然後他們盡可能廣泛地實施這些解決方案。執行者以結果為導向。儘管建設的基礎設施比領導者或規劃者少,但他們能夠並且已經取得了顯著收益。另一方面,他們有時會發現很難將不同的努力整合到公司範圍內的績效中。

新興公司,約佔總數的四分之一,成熟度最低,收益最小;許多人才剛剛開始。一些新興公司報告在選定的用例方面取得了一定的成功,但其他公司發現甚至很難弄清楚在哪裡投資。很少有戰略、技能或基礎設施能夠走得更遠。

了解機器智能(MI)的五種方法
總的來說,我們發現成功部署先進數位技術的公司根據九項績效指標對自身所處的位置進行了誠實的評估。在此基礎上,他們能夠形成三四年後想要達到的目標。同時,他們確定了一些有希望的方式來快速獲勝。更具體地說,該研究確定了表現最佳的五個領域。

治理。機器智能是領先公司的戰略重點。許多公司建立了專門的卓越中心來支持他們的實施工作,無論是在業務部門內,還是作為支持整個組織、確保標準和加速部署的集中功能。專門和集中的支持功能還有助於保持他們的數位計劃正常進行,並記錄他們的投資組合的進展情況。與業績不佳的公司相比,領導者更有可能擁有明確的數位創新評估和實施流程。例如,製藥公司 Bayer 使用一個有據可查的治理流程在一個工廠部署多個應用程序,然後在其網絡中推出這些應用程序,從而提高了收入。
然而,領導者也認識到,在這個快速發展的領域,變革是不可避免的。大多數領導者都在不斷完善和改進他們的流程,執行者和規劃者經常陷入困境,這限制了成功擴展的能力。

部署。領先的組織更廣泛地應用 MI 並使用更複雜的方法。例如,每個領導者都在預測、維護優化以及物流和運輸方面實施了 MI。領導者也更有可能採用先進的方法,例如將機器視覺應用於產品質量保證。一家生物製藥公司 Amgen 發現,視覺檢測系統操作為自動化和利用 AI 技術帶來了巨大的機會。 Amgen 正在使用 AI 開發一個經過全面驗證的視覺檢測系統,該系統將提高 70% 的顆粒檢測並將錯誤剔除率減少 60%。
雖然此類應用程序可能會產生巨大影響,但這些公司也意識到,任何長期影響都需要同時拉動多個槓桿,而在企業範圍內進行廣泛部署是關鍵。

夥伴關係。合作夥伴關係很常見,通常與學術界、初創企業、現有技術供應商和外部顧問合作。然而,領導者與更廣泛的合作夥伴合作,並且更加密集,以最大限度地提高速度和學習。例如,Colgate-Palmolive 和 Pepsico/Frito-lay 這兩家消費品公司與系統供應商 Augury 合作,在其生產線上部署了人工智慧驅動的機器健康診斷;在一個案例中,這避免了 8 天的中斷。半導體公司 Analog Devices 與 MIT 合作開發了一種新穎的 MI 質量控制,使其能夠識別哪些生產運行和工具可能存在故障。這意味著公司工程師只需審查他們之前必須審查的 5% 的過程數據。
領導者,儘管他們的能力更高,實際上更多地依賴外部合作夥伴來進一步加快他們的學習和影響時間。

人。領先的公司採取措施確保盡可能多的利益相關者擁有採用先進數位方法所需的技能和資源,而不是將這種專業知識留給專家。例如,超過一半的公司對一線人員進行 MI 基礎知識培訓,而其他公司只有 4%。全球快餐店麥當勞使用 MI 改進了廣泛的運營任務,從預測客戶響應到預測實時客流量。該公司採用了一種混合方法來做到這一點:其企業卓越中心測試並開發新方法,然後將它們打包成易於使用的工具,並廣泛使用。該系統幫助該領域的團隊成員了解良好數據的重要性並磨練他們的問題識別技能。
很明顯,領導者認為數據和分析的使用深深植根於他們的運營方式,而不是使其孤立並僅限於少數員工。

數據可用性。領導者使數據易於使用。我們研究中的所有領導者都允許一線員工使用數據,而其他領導者的這一比例為 62%。領導者也都從客戶和供應商那裡獲取數據,89% 的人分享他們自己的數據。領先公司實現遠端數據訪問並將大部分數據存儲在雲中的可能性幾乎是其他公司的兩倍。簡而言之,數據的公開化是有效使用分析的一個關鍵方面。一個很好的例子來自汽車供應商 Cooper Standard。它要求團隊在開發早期解決數據策略。

數位化轉型的基石
我們發現,將五個領域——治理、部署、合作夥伴關係、人和數據——整合到一個卓越中心協調的組織中時最有效。但首先,公司需要對其維度進行誠實的評估。從那裡轉變計劃可以開始形成。即使是粗略的,現實中變革的障礙——熟練的人才、投資能力和關鍵基礎設施,例如將數據從舊系統遷移到雲。大多數領導者從使用數據和簡單工具做出決策開始,然後隨著他們對數據的成熟和熟悉轉向更先進的技術。

儘管 MI 最近取得了重大進展,但規模才剛剛開始顯現。這讓我們看到了領導者和其他人之間更重要的區別:金錢。領導者的支出增加了 30% 到 60%,他們預計將預算增加 10% 到 15%,而其他人則報告很少或沒有增加。這意味著領導者與其他人之間的差距實際上可能會擴大。不過根據狀況不同,每家公司的路徑都會有所不同。

2022/03/26

銀行利用人工智慧增強客戶體驗

韓國銀行正在採用人工智慧來更好地了解客戶,並使他們能夠更輕鬆地利用服務。韓亞銀行表示,它將使用人工智慧實時查看客戶評論,以擴大客戶和員工之間的溝通。

“我們每天都看到銀行業的變化。獲得有關我們金融服務的即時反饋,以便我們知道在需要時我們需要做什麼,這對我們的擴張至關重要,”一位負責該計劃的韓亞銀行官員說。

這位官員指出,人工智慧不僅速度更快,而且在處理數量驚人的評論方面也更加細緻入微,這意味著電腦判斷好與壞反饋之間的界限比人類更清晰。

與此同時,競爭對手新韓銀行也在部署人工智慧來幫助客戶開戶、處理儲蓄甚至申請貸款。

“我們稱其為 AI 銀行家,它將在數位服務台上幫助客戶尋找這些服務——我們還計劃提供的其他服務中最受歡迎的服務,”新韓銀行的一位官員說。

新韓銀行開設了數位辦公或無人值守的分行,因為在疫情大流行中對非接觸式商務的需求不斷增長。但是客戶必須等待在其他地方工作的員工連接到數位服務台才能在線進行任何交易。“人工智慧銀行家將擺脫等待,因為它會等待客戶,”這位官員說,並指出將在 40 家分行進行試運行,然後將服務擴展到全國。

這位官員稱,人工智慧銀行是該銀行母公司新韓金融集團正在開展的更廣泛數位化工作的一部分,該官員表示,該集團的信貸部門也在貫徹其口號,即提供更輕鬆、更新的服務。

2022/03/19

JavaScript 中如何合併 Array

1. 使用 Concat 方法合併 Array

concat 函數是 JavaScript 中合併 Array 的標準。

使用 concat 是將 array2 的元素附加到 array1 的末尾。 值得注意的是,concat 函數不會更改 array1 和 array2。 相反,會創建一個新 Array。

2. 使用 Push 結合兩個 Array

push 函數將元素增加到現有 Array 的末尾。 此行為與 concat 函數略有不同,因為現有 Array 會更改。



如果您需要合併較小的 Array,push 的效能是比較好的。對於具有較大 Array,請使用 concat 函數。

2022/03/06

.NET 6.0 有什麼新功能

.NET 6 是 .NET 的最新版本,於 2021 年 11 月發布。與其前身相比,.NET 6 不僅是該框架的一個大大改版,而且它還引入了一些在其他平台和語言看到的歡迎的功能。

在 .NET 6 之前,.NET 有兩個獨立的產品,.NET Framework 和 .NET Core。 .NET Framework 是未開源的 .NET。 .NET Core 是 .NET 的開源版本,它從頭開始重寫,適用於所有平台、Windows、Linux 和 Mac。對於 .NET 6.0 及更高版本,也將只有一個版本的 .NET。

.NET 6 是一個真正的統一開發平台,允許開發人員為雲端、Web、桌面、移動、遊戲、物聯網和人工智慧構建應用程式。所有這些子平台共享通用的基類庫、API 和底層基礎設施,包括語言和編譯器。.NET 6 可在 Visual Studio、Visual Studio Code 和 CLI 使用 。 將作為最新的 LTS 版本支持三年。

C# 10 和 F# 6 是 .NET 6 附帶的最新版本的 C# 和 F#。C# 10 提供了許多改進,但重點是簡單性。 C# 10 中的一些關鍵改進: using 指令、記錄結構、文件範圍命名空間、常量內插字符串、lambda 改進和空參數檢查。

.NET 中增加了 Hot Reload ,它允許開發人員在程式碼運行時修改程式碼並實時執行這些更改,而無需重新啟動應用程序。 Hot Reload 適用於 Visual Studio 和 CLI。

.NET 6 版本提供了 Blazor。 Blazor 是一個前端 Web 框架,用於構建在 Web 瀏覽器中運行的客戶端 Web 應用程序。 Blazor 使用 HTML、CSS 和 C# 來構建網頁。Blazor 支持兩種託管模型,Blazor Server 和 Blazor WebAssembly。 Blazor 服務器模型在服務器上執行類似於 ASP.NET 的程式碼並將 HTML 傳遞給瀏覽器。 對於 Blazor WebAssembly,C# 程式碼使用 WebAssembly 在瀏覽器中執行。

ASP.NET Core 6.0 在 Minimal API、SignalR、Razor 編譯、ASP.NET 性能和 API 改進以及 Blazor 等多個方面提供更新和改進。

.NET MAUI 是 .NET Multi-platform App UI 的縮寫,是 .NET 的最新功能之一。它是 Xamarin 和多 UI 平台的下一個化身。 .NET MAUI 允許專案中編寫程式碼,提供跨桌面和移動操作系統的客戶端應用程式體驗,預計很快就會發布。

其他 .NET 改進
  • JSON API 的功能更強大
  • ASP.NET Core 中引入的Minimal API 提高 HTTP 服務的性能
  • 使用 ASP.NET Core 構建的單頁應用程式現在使用更靈活,可與 Angular、React 和其他流行的前端 JavaScript 框架一起使用
  • 增加了 HTTP/3,以便 ASP.NET Core、HttpClient 和 gRPC 都可以與 HTTP/3 客戶端和服務器互動
  • 支持 OpenSSL 3、ChaCha20Poly1305 加密方案和運行時深度防禦措施,安全性得到了改進
  • 可以為 Linux、macOS 和 Windows 發佈文件應用程式
  • IL 更加強大和有效,新的警告和分析器可確保正確的最終結果
  • 增加了程式碼生成器和分析器,可幫助生成更好、更安全和更高性能的程式碼
  • .NET 6 為容器提供了更好的支持,使 .NET 6 應用程式的打包、部署和執行更加容易
  • Windows 視窗應用程式的改進

2022/03/05

AlphaCode 是工具,不是程式設計師的替代品

DeepMind 是人工智慧研究實驗室,它引入了一種深度學習模型,可以產生具有顯著效果的軟體程式碼。 該模型名為 AlphaCode,基於 Transformers,OpenAI 在其程式碼產生模型中使用的架構相同。在這複雜的編寫程式碼,AlphaCode 確實給人留下了深刻的印象。 但它肯定不等同於任何級別的程式設計師。 這是一種完全不同的軟體開發方法,如果沒有人類的思考和直覺,是無法完整的一個應用程式。

AlphaCode 可以完成非常複雜的任務,但只是類似專注於產生程式碼片段,例如執行小任務的函數或代碼塊(例如,設置 Web 服務器,從 API 系統中提取資訊)。雖然令人印象深刻,但當要應付夠大的應用程式系統時,這些任務變得微不足道。基本上,機器學習模型要能產生一個完整的程式來解決前所未有的問題,是相當困難的。

還有另一種程式產生深度學習系統被稱為 seq2seq。 Seq2seq 是將一序列值(字母、像素、數字等)作為輸入並產生另一個值序列。 這是許多自然語言任務中使用的方法,例如機器翻譯、文本生成和語音識別。

無監督和監督學習
為了創造 AlphaCode,DeepMind 的科學家結合了無監督預訓練和監督微調。 通常被稱為自我監督學習,這是在沒有足夠標記數據或數據註釋昂貴且耗時的應用程序中流行的方法。

在預訓練階段,AlphaCode 從 GitHub 提取的 715 GB 數據進行了無監督學習。 通過預測語言或程式碼片段來訓練模型。 這種方法的優點是它不需要任何類型的註釋,通過接觸大量的樣本,ML 模型在為文本和程式碼的結構逐漸變得更好。另外在製造數據集時,研究人員特別注意避免訓練、驗證和測試集之間的重複。 這確保了 ML 模型在面臨挑戰時不會產生記憶結果。

一旦 AlphaCode 被訓練,它就會針對以前從未見過的問題進行測試。當 AlphaCode 處理一個新問題時,它會生成許多解決方案。然後它使用過濾算法來選擇最好的 10 名候選結果並將其提交。如果其中至少一個是正確的,則認為問題是被解決。為了優化樣本選擇過程,使用聚類算法將解決方案分組。根據研究人員的說法,聚類過程傾向於將工作解決方案組合在一起。這使得找到通過測試的候選結果變得更加容易。

根據 DeepMind 的說法,在流行的 Codeforces 平台上的實際編程比賽中進行測試時,AlphaCode 平均排名前 54% 的參與者,考慮到撰寫程式碼的難度,這算是非常好的結果了。

人工智慧與人類
DeepMind 的 Blog 指出,AlphaCode 是第一個在程式競賽中達到具有競爭力的 AI 程式碼產生系統。然而,一些刊物將這種說法誤認為 AI 編碼與程式設計師一樣好,這是相當荒謬。兩個主要的例子是 DeepBlue 和 AlphaGo,它們是擊敗國際象棋和圍棋世界冠軍的人工智慧系統。雖然這兩個系統都是計算機科學和人工智慧的了不起的成就,但它們只擅長一項任務。他們無法在任何任務上與人類競爭。

因此,與其說 AlphaCode 與程式設計師是彼此競爭,不如我們更應該對 AlphaCode 和其他類似的 AI 系統在與程式設計師合作時能做什麼感興趣。這些工具可以對程式設計師的生產力產生巨大影響。它們甚至可能改變寫程式的方式,將人類轉向設計問題並讓人工智慧系統生程式碼。再由程式設計師利用他們的直覺將系統導向正確的解決方案。使用測試、分析和審查來改進他們的程式碼。

認識到 AlphaCode 的本質:一個程式碼產生器,可以為精心設計的問題提出良好的候選解決方案。它也不應該被認為是程式設計師的代替品。

2022/02/28

Svelte Native 與 React Native 比較

什麼是 Svelte Native?
Svelte Native 基於 Svelte 的 Framework,它允許 Svelte 開發人員構建原生 Android 和 iOS 應用程序。最初由 Rich Harris 於 2021 年 11 月發布。難道 JavaScript 框架還不夠多嗎?為什麼要用另一個?Svelte 的構建是為了流暢、交互、簡單和高效。

Svelte Native 結合了 Native Script 和 Svelte 的優點
根據 Svelte Native 網站,它是由 Svelte 提供支持的移動應用程式框架,能夠使用 Web 框架構建移動應用程式。

什麼是 React Native?
React Native 是一個基於 React 的跨平台移動應用程式開發框架,可構建原生 Android 和 iOS 應用程式。它是頂級的移動應用程式開發框架之一,由 Facebook 為其內部開發設計和開發,在 2015 年成為了一個開源項目。

React Native 將原生開發的部分與 React 結合在一起,React 是用於構建用戶界面的一流 JavaScript 程式庫。在 React Native 之前,開發人員使用的是使用 HTML、CSS 和 JavaScript 等 Web 技術構建的混合移動應用程式。在性能、速度造成了許多問題。React Native 允許 JavaScript 代碼使用橋接器與 Native Code 對話,從而使應用程序更快、性能更高。

如果 Svelte 和 React Native 都完成相同的任務,那麼它們有何不同呢?

React Native 的工作原理
React Native 在應用程式和目標設備(Android/iOS)之間創建了橋樑,允許 JavaScript 代碼與 Native Code 對話,反之亦然。 它通過創建三個 threads 來解釋不同級別的 JavaScript 代碼來做到這一點:UI thread、Shadow thread 和 JavaScript thread

UI thread
這會運行您的應用程式,並且是唯一可以取得 UI 的 thread。 因此它可以更新 UI 畫面。

Shadow thread
這會計算 React 建立的 UI 佈局,並將它們發送到 UI thread 的 Native Code。 React Native 利用 Yoga 將 JavaScript UI 代碼轉換為宿主平台可以理解的佈局系統。

JavaScript trhead
JavaScript thread 處理 JavaScript UI 佈局並將它們發送到 Shadow thread,從而將它們發送到 UI trhead。

使用 Svelte Native
Svelte Native 利用 NativeScript,它允許使用 JavaScript 開發本機應用程式,並讓 JavaScript 代碼直接訪問 Native Code。 它沒有包裝,這意味著可以訪問所有受支持的設備 API。

Svelte Native 和 React Native 的採用
與 Svelte Native 相比,React Native 擁有龐大的社群。React Native 在 GitHub 上有超過 10 萬顆星,而為 Svelte Native 提供支持的 NativeScript 有 2 萬多顆星。

如果開發人員遇到錯誤,使用 React Native 比使用 Svelte Native 更容易找到幫助,因為可能有很多開發人員遇到了同樣的問題並分享了他們的解決方案。

學習曲線和發展速度
與 Svelte Native 相比,React Native 的學習曲線陡峭。任何了解 JavaScript 的開發人員都可以開始使用 Svelte Native,因為語法簡單、簡短且易於理解。

React Native 需要 React 知識,這並不容易立即進入,因為需要了解 JSX 是如何運作的以及生命週期是如何運行的。

開發速度在很大程度上取決於開發人員以及他們對如何使用該工具(React 或 Svelte)的了解程度。從 React Native 開發人員過渡到專注於 Svelte Native 的開發人員並不難,但是如果你從 Svelte Native 切換到 React Native,可能需要更多時間來學習。

React Native 與 Svelte Native 設置
為開發設置 React Native 很大程度上取決於您使用的工具。如果您使用 React Native CLI,則設置 React Native 更具挑戰性,因為您需要設置 Xcode 或 Android SDK 來編譯和運行模擬器。但是,使用 Expo 可以簡化設置過程,因為它可以實時編譯代碼。

對於 Svelte Native,需要設置 Android SDK 來運行 NativeScript,目前沒有工具可以像 Expo 那樣對 React Native 進行測試。

這兩個移動應用程式開發框架都很棒。與往常一樣,沒有最適合的正確答案。如果您打算開始一個新的移動應用並且使用熟悉的 JavaScript 並快速構建,請從 Svelte Native 開始。但是,如果您是 React 開發人員,您可能更喜歡使用 React Native 進行構建,因為它最適合 React 。

2022/02/26

.NET 7 中的 Blazor Hybrid

微軟的 ASP.NET Core 開發團隊對 .NET 7 中的 Blazor Hybrid 將於 11 首次亮相。

雖然 Blazor 自 2018 年以來在客戶端和服務器端組件中都存在,但對使用 .NET MAUI 和 Blazor 跨平台混合桌面應用程序的支持於去年 11 月隨 .NET 6 一起出現。 Blazor 混合應用程序是本機應用程序,可以利用 HTML 和 CSS 等 Web 技術提供附加功能。 因此,混合應用程序可能使用嵌入式 WebView 控件來呈現 Web UI。

開發人員何時可以在 .NET 7 預覽版中嘗試其中的一些功能呢?沒人知道。

2022/02/20

如何使用 AI 與 Big Data 來幫助野生動物

目前許多領域已進入大數據和物聯網時代。由於衛星、無人機等先進技術,現在可收集有關野生動物種群的大量數據。這些數據變得如此容易獲取和共享,從而縮短了研究人員距離和時間要求,同時減少了人類在自然棲息地中的干擾。如今,可以使用各種 AI 來分析大型數據集。目前一些大學的科學家團隊概述了解決該問題的開創性方法,並透過將電腦視覺與生態學家的專業知識相結合來開發更準確的模型。

野生動物研究已走向全球。現代技術現提供了革命性的新方法,可以更準確地估計野生動物種群,更了解動物行為。生態學家使用 AI,使用電腦視覺,從圖像、視頻和其他視覺形式的數據中提取關鍵特徵,以便快速分類野生動物物種、計算動物數量並收集某些信息。當前用於處理此類數據的程式通常像黑匣子,並且不能充分利用關於動物的現有知識。更重要的是,它們難以定制,有時質量控制不佳,並且可能會受到與敏感數據相關的道德問題的影響。它們還包含一些偏見,尤其是區域性的;例如,如果用於訓練的數據是在歐洲收集的,那麼可能不適合世界其他地區。

如果科學家想要經過訓練 AI 來減少識別特定物種的誤差範圍,他們需要利用動物生態學家的知識。這些專家可以將哪些特徵考慮到程式中,例如一個物種是否可以在特定的緯度生存,它是否對另一個物種的生存至關重要或者該物種的生理機能是否在其生命週期內發生變化。新的機器學習算法可用於自動識別動物。例如斑馬獨特的條紋圖案,或者在視頻中,它們的運動行為可以成為身份的標誌。野外生物學家對正在研究的動物擁有豐富的領域知識,而作為機器學習研究人員的工作是與他們合作構建工具以找到解決方案。一個名為 DeepLabCut 的開源,讓科學家能夠以極高的準確性估計和跟踪動物。它已經被下載了 300,000 次。 DeepLabCut 專為實驗室動物設計,但也可用於其他物種。

2022/02/19

構建深度學習模型:PyTorch vs TensorFlow

目前兩個最流行的 Python 的深度學習程式庫是 PyTorch 和 TensorFlow。對於機器學習來說,在選擇深度學習模型時可能會很難決定使用哪一個。因為您可能不清楚其中的區別,而無法做出決定。以下簡單說明一些差異:

TensorFlow簡介
Google 開發了 TensorFlow,並於 2015 年開源。是從 Google 的內部機器學習軟件演變而來的,經過重構和優化以供其他人使用。TensorFlow 指的是資料組織和處理方式。當您使用 TensorFlow 時,您會構建一個有狀態的數據流,它類似於事件的流程圖。TensorFlow 以高性能深度學習庫而聞名。它擁有龐大而活躍的用戶群,以及大量的官方和第三方培訓、部署和服務模型、工具和平台。

PyTorch 簡介
PyTorch 是最新的深度學習框架之一,由 Facebook 團隊開發並於 2017 年在 GitHub 上發布。PyTorch 因其易用性、簡單性和高效而越來越受歡迎。在編寫程式碼之前可對其進行測試以查看是否有效。

PyTorch 模型中的訓練和評估過程會比較順暢,而在構建塊方面,TensorFlow 由於其簡化的 API 更適合初學者。

2022/02/12

百萬年薪不是夢 JavaScript 學習路徑

如果你想在程式開發有一番成就,且用 JavaScript 做到,那恭喜你,你做了一個正確的選擇。 但過程會很艱難,且困難重重並具有很大的挑戰性,不過請堅持。如果你能學到很好的開發經驗,你的收入將超過百萬年薪。

您必須掌握的第一件事是 JavaScript 的基礎知識。包含語法、類型和變量。當你理解了這些基本概念後,你就可以深入研究更深層次的東西了。當你熟悉更多東西,你應該會知道所有 JavaScript 的基本概念,並且你可以寫簡單的程式。接著你應該要了解該如何操作 DOM。
所需時間:5天到10天

JavaScript 可以非常簡單地處理網頁的 DOM。您可以學習如何使用 JavaScript 選擇元素,學習如何使用 getElementById 等方法。JavaScript 可以使網頁動態化,試試使用 innerHTML, createElement, appendChild 等方法,來改變網頁上的元素。
所需時間:5天

網頁上少不了要顯示相關的資料,數據資料也可能會隨著時間而改變。所以,你需要知道如何使用 HTTP 請求,這不需要很多程式碼但卻是非常重要的步驟。現在的網站都會用到 API 請求,所以,一定要盡可能學好關於使用 HTTP API 的一切。
所需時間:3天

接著您需要了解一些有點困難但對編寫大型代碼庫很有必要的概念。像是 this、let、const、arrow functions 等。一旦你掌握了這些,你就可以繼續學習 OOP 的觀念。建議試著使用 TypeScript 來寫程式。
所需時間:15天到30天

JavaScript 有很多強大且有用的 library 和 framework,可以快速達成很多不同的東西。例如試試看 Chart.js,用於產生可視化數據的圖表。
所需時間:5天到10天

您可以開始學著使用更強大的 library 和 framework。要成為專業人士,您需要掌握至少一個 UI  framework,例如 React、Angular 或 Vue.js。您需要這些 framework 來產生使用者介面,並用最佳的方式操作 DOM。也許你無法了解所有 framework,但你至少要學習其中一個並掌握它。
所需時間:30天到60天

您現在可以開始學習使用 Node.js、安裝它並在其上進行開發。一個非常重要的工具是 npm,它用於安裝依賴元件,並且創造您自己的元件。使用 Node.js 開發一些東西,並嘗試使用一些 npm library,請自己寫寫看,確認知道如何使用它。
所需時間:15天到30天

為了讓你自己更了解 JavsScript,在每一個階段都必須試著寫一些程式來練習,以確保你明白你所學的重點。如果你能完成以上的學習階段,你一定可以找到一份 JavaScript 開發人員的工作。所有學習過程都可能會有所不同,取決於您如何學習程式語言的經驗。 所以,Do your best,學習成功所需的一切。祝找到一個理想的 JavaScript 工作。

2022/02/06

Want to know about CSS Framework?

What Is Tailwind CSS?

Adam Wathan originally developed tailwind CSS and was first released on November 1st, 2017. It is a utility-first low-level framework. You won't need to write a lot of CSS. Just write many classes for your HTML elements.

Tailwind CSS is highly customizable. You can easily use the styling of every single component separately. You may think that it's not at all convenient to write a lot of classes. That's where component extraction comes. You can bundle these classes into one and name it as you want.

These are some reasons Tailwind CSS is drawing a lot of attention. It offers flexibility for time. It has high freedom, has advantages for customization, and solves common problems and difficulties in CSS development.

There is no faster framework than Tailwind for styling HTML. You can easily create good-looking layouts by styling elements directly, because Tailwind offers thousands of built-in classes that do not require you to create designs from scratch.


What Is Bootstrap CSS Framework?

Bootstrap is a branch of Twitter internal design tools in mid 2010, and became an open-source framework on August 19th, 2011. It is based on Object-Oriented CSS.

It is super easy to learn and maintain consistency across multiple devices and browsers. The responsive 12-column grid system, components, and layouts are just a matter of a few minor changes. You can do offsetting and nesting of columns in both fluid-width and fixed layouts. You can use responsive utility classes to hide or display certain content only on a specific screen size. Bootstrap has got almost everything covered, navigation bar, pagination, breadcrumbs, etc. If you know CSS, it will be super easy to customize them and build a decent website template.

Bootstrap is limited in customization, but because there are many off-the-shelf components, it can be developed quickly and efficiently.But if you use Bootstrap poorly, then your site will look similar to other sites.