BeautifulAlgorithms.jl

BeautifulAlgorithms.jl

Julia语言实现的简洁算法库

BeautifulAlgorithms.jl是一个Julia语言算法库,涵盖机器学习、优化等多个领域。项目提供简洁的算法实现和测试用例,主要用于学习目的。所有代码经Carbon格式化,方便用户理解和学习。

Julia算法机器学习优化强化学习Github开源项目

BeautifulAlgorithms.jl

构建状态 代码覆盖率

用Julia编写的简洁算法,使用Carbon进行格式化。

包含机器学习、优化、强化学习、在线规划、不确定性下的决策和排序算法。所有实现都是可运行且独立的;请参考测试用例

注意,这些主要用于学术目的,不适合实际应用。还有许多其他Julia包实现了这些算法的更可靠版本。

] add http://github.com/mossr/BeautifulAlgorithms.jl

注:算法已从原始来源进行了修改。

梯度下降

Percy Liang和Dorsa Sadigh,《人工智能:原理与技术》,斯坦福大学,2019年。

<p align="center"><a href="./src/gradient_descent.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/92a8737f-5f3c-41b1-a072-a2dff696cbb3.png"></a></p>

随机梯度下降

Percy Liang和Dorsa Sadigh,《人工智能:原理与技术》,斯坦福大学,2019年。

<p align="center"><a href="./src/stochastic_gradient_descent.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/9fe54334-4791-4bb3-b446-50c11147c7f5.png"></a></p>

两层神经网络

<p align="center"><a href="./src/neural_network.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/38b07343-df46-44bb-954d-6b1f128e5940.png"></a></p>
两层神经网络(单行版)
<p align="center"><a href="./src/neural_network_one_liner.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/ce40d4fb-e8ba-4534-aa60-e4e7e55b1b62.png"></a></p>

多层神经网络

<p align="center"><a href="./src/multi_layer_neural_network.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/730f4523-fb23-44bc-8480-46e3ab914a87.png"></a></p> ## 损失函数 <p align="center"><a href="./src/loss_functions.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/f0decf36-cb1a-4750-853a-3822940504f8.png"></a></p>

距离函数

<p align="center"><a href="./src/distance_functions.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/e7c24ae0-6a04-46ad-a602-83bc763bff98.png"></a></p>

最近邻

<p align="center"><a href="./src/nearest_neighbor.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/167a42ff-4ead-4b37-a629-01a88370c7de.png"></a></p>

K-最近邻

<p align="center"><a href="./src/k_nearest_neighbors.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/07a7baab-fdad-41d2-9fdf-82dcc05b0436.png"></a></p>

K-均值聚类

Percy Liang 和 Dorsa Sadigh,《人工智能:原理与技术》,斯坦福大学,2019年。

<p align="center"><a href="./src/k_means_clustering.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/f799e57a-177d-4af1-a970-4a31d40498cc.png"></a></p>

EM算法

Andrew Ng,《高斯混合模型和EM算法》,斯坦福大学,2020年。<sup><a href="http://cs229.stanford.edu/notes2020spring/cs229-notes7b.pdf">1</a></sup>

<p align="center"><a href="./src/em_algorithm.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/2d98a9fe-8640-40a9-8342-68735177f07c.png"></a></p>

线性回归

Mykel J. Kochenderfer 和 Tim A. Wheeler,《优化算法》,麻省理工学院出版社,2019年。(感谢 @HenriDeh 使用 ones

<p align="center"><a href="./src/linear_regression.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/6586a4ac-400a-45b7-95fd-f5de1b4fbc5f.png"></a></p>
线性回归(一行代码版)
<p align="center"><a href="./src/linear_regression_one_liner.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/f1b3fb2f-eac7-4163-b562-d671fb38713e.png"></a></p>

岭回归

<p align="center"><a href="./src/ridge_regression.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/562d225f-4940-4ede-a6de-13ba3833ca6f.png"></a></p>

基函数回归

Mykel J. Kochenderfer 和 Tim A. Wheeler,《优化算法》,麻省理工学院出版社,2019年。

<p align="center"><a href="./src/basis_regression.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/55e025ba-397d-4ccf-b0a3-1b2bea63b137.png"></a></p>

径向基函数回归

Mykel J. Kochenderfer 和 Tim A. Wheeler,《优化算法》,麻省理工学院出版社,2019年。

<p align="center"><a href="./src/radial_basis_regression.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/48f0c43c-102b-464b-bc91-6e91232761fc.png"></a></p>

逻辑回归

<p align="center"><a href="./src/logistic_regression.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/27e6530e-03bc-433f-9545-7a62e24aee44.png"></a></p>

交叉熵方法

Mykel J. Kochenderfer 和 Tim A. Wheeler,《优化算法》,麻省理工学院出版社,2019年。

<p align="center"><a href="./src/cross_entropy_method.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/263ec898-9b19-4a27-b0ca-81f632834240.png"></a></p> ## 有限差分法 Mykel J. Kochenderfer 和 Tim A. Wheeler,《优化算法》,麻省理工学院出版社,2019年。 <p align="center"><a href="./src/finite_difference_methods.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/8f10035b-9d1a-4fda-a4a7-451102b26785.png"></a></p>

模拟退火

Mykel J. Kochenderfer 和 Tim A. Wheeler,《优化算法》,麻省理工学院出版社,2019年。

<p align="center"><a href="./src/simulated_annealing.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/8763818b-8f6c-4428-9f52-fd63225e0631.png"></a></p>

Twiddle算法

Sebastian Thrun,《机器人人工智能》,Udacity,2012年。

<p align="center"><a href="./src/twiddle.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/24bf29cb-c250-4d9b-a70b-baf866f93184.png"></a></p>

牛顿法

John Wallis,《代数历史与实践论文》,1685年。

<p align="center"><a href="./src/newtons_method.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/fa935e3c-318c-4a7f-b740-a04e08c85c39.png"></a></p>

高斯过程

Mykel J. Kochenderfer 和 Tim A. Wheeler,《优化算法》,麻省理工学院出版社,2019年。

<p align="center"><a href="./src/gaussian_process.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/4b0c49fd-e625-4f3d-b8f2-581c0067452f.png"></a></p>

高斯过程核函数

<p align="center"><a href="./src/gaussian_process_kernels.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/2ab47b92-4c7c-4c7e-b4e0-6ee8fa4dfdaa.png"></a></p>

汤普森采样

Daniel J. Russo、Benjamin Van Roy、Abbas Kazerouni、Ian Osband 和 Zheng Wen,《汤普森采样教程》,arXiv:1707.02038,2020年。

<p align="center"><a href="./src/thompson_sampling.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/1d101988-6ffc-4644-b6e7-fa469a0d3cc8.png"></a></p>

粒子滤波

Mykel J. Kochenderfer、Tim A. Wheeler 和 Kyle H. Wray,《决策算法》,预印本。

<p align="center"><a href="./src/particle_filter.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/4dcd9e90-f3bc-4a2b-9b60-e881dba5fae7.png"></a></p>

价值迭代

Mykel J. Kochenderfer、Tim A. Wheeler 和 Kyle H. Wray,《决策算法》,预印本。

<p align="center"><a href="./src/value_iteration.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/f2bb4a34-335b-46e3-bad3-8b4aefb98182.png"></a></p>

分支定界法

Mykel J. Kochenderfer、Tim A. Wheeler 和 Kyle H. Wray,《决策算法》,预印本。

<p align="center"><a href="./src/branch_and_bound.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/d07b20eb-f2c0-42a4-88b8-02a8e6b7b3b8.png"></a></p>

蒙特卡罗树搜索

Mykel J. Kochenderfer、Tim A. Wheeler 和 Kyle H. Wray,《决策算法》,预印本。

<p align="center"><a href="./src/monte_carlo_tree_search.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/6fe28f20-d3c9-491a-80e9-4f7bb12c4124.png"></a></p>

霍夫曼编码

David A. Huffman,《构建最小冗余编码的方法》,IEEE,1952年。

<p align="center"><a href="./src/huffman_coding.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/1d6666c5-645c-4f3b-853c-cc82375bfa49.png"></a></p> ## 冰雹序列(考拉兹猜想) <p align="center"><a href="./src/hailstone.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/f50da184-f345-4a78-8937-710f04abc523.png"></a></p>

冒泡排序

Karey Shi,《算法设计与分析》,斯坦福大学,2020年。

<p align="center"><a href="./src/bubble_sort!.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/bd755d81-8f54-4012-b02e-f7e93c03770e.png"></a></p>

归并排序

Karey Shi,《算法设计与分析》,斯坦福大学,2020年。

<p align="center"><a href="./src/merge_sort.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/7509513b-c4e3-4ee0-ad9b-9216cc4ddc5b.png"></a></p>

插入排序

Karey Shi,《算法设计与分析》,斯坦福大学,2020年。

<p align="center"><a href="./src/insertion_sort!.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/6487919b-6794-4a34-bdac-9f030b7a9e26.png"></a></p>

猴子排序

<p align="center"><a href="./src/bogo_sort!.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/ec945bb2-7397-4ed7-978b-07ead548bae7.png"></a></p>
猴子排序(单行代码)
<p align="center"><a href="./src/bogo_sort!_one_liner.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/38a22105-5f4b-4c41-929a-707a8c99f499.png"></a></p>

自产生程序

Nathan Daly,《Julia Discord》,2019年。<sup><a href="https://discourse.julialang.org/t/quines-and-loons-self-replicating-programs/12607/7" target="_blank">2</a></sup>

<p align="center"><a href="./src/quine.jl"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/b9e40eac-a3e3-4ea9-9b78-4ecf5bbbca8e.png"></a></p>

作者:Robert Moss

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多