AI的诞生

 
AI使用特定的算法,从历史数据中寻找规律,然后用于新数据的预测;
这教科书式的回答适合在正式场合说,比如面试...

有一个专门的名词叫"拟合",用于描述算法模型与数据规律的契合程序;
拟合 这个词从中文的角度看上去不自然,是翻译过来的名词,
就跟"尼古拉斯-赵四"一样,虽然不太理解但总体感觉有些高大上
跟常说的,"怎么样,合适吗?","你会办事吗","你会说话吗,不会就别说"...
本质是一个意思,拟合程度不高...结果引发他人不满...

更适合这个地方的单词,应该是模拟/近似/契合/试图步调一致,
转换成生命的行为就是立足于本能的学习
本来学习就完事了,特意加上立足于本能,
是为了强调,不同的生命对这个世界的学习方式不一样 

从道的角度看,
如目所见事物甚至连其运动方式都有道的体现,
但完成同一件事不同做法的代价与效率区别可大了去了
我们想要那个代价低效率高的... 

张三说,学习太累了,有没有人帮我学习一下,告诉我结果就行
李四说,那你用AI试试吧...
就是将人类活动中那些高度重复,累人且没有创造性的工作 让机器耗电去做吧...

AI就是模仿生命对世界的学习方式而生的一门学科,深度学习更是如此,仿照了生命神经元的模式
如果说人是万能学习机,那模仿人的AI就是一个万能模拟器,
虽然目前它远不如人聪明,但也能做很多人无法完成的工作 

简单说,AI就是一个模拟器,给它点历史数据它就能自己学习出其中的规律,
数据充足时,效果更佳,常用于工程近似
AI是一门工程近似学科

从智能的角度看,智慧生命发展到一定程度,弱一级智能AI,也就是人工智能的诞生是必然的!

何为智?


合规近道为智(仅个人观点,如有雷同,纯属巧合... )

算法工程师

工程师的能力

 
相比于纯学术性研究的人来说,工程师的能力在于 

将一个 业务问题 转化为 已有的算法模型,并且进行落地解决 

这个业务问题并不局限于你曾经见过的,也包括你之前没有见过的

大多时候并不是要设计一个高深的算法,而且 以简单/简洁的方式 去解决一个实际问题

 
工程的实现靠编程语言

编程语言从最开始的指令,
到函数,面向过程
到类与对象,面向世界,实际就是面向业务 

总之,编程是为业务服务,是业务实现的一种技术

    

通用解决问题的方法

 
数字化:将各种抽象的问题转化为数据 
选模型:选择与具体业务场景最贴合的模型 

AI的效果是 大数据 + 算法模型 的综合结果

 
人们很容易认为新出现的AI的效果是算法模型的功劳,
实际上这是,大数据 +算法模型的共同结果 

大数据决定了结果的上限 

但模型的设计代表了人们的创造性,思考,对规律的模拟,的确也是非常核心且重要的 
    
环境概述

 
目的:搭建一套AI环境

主要内容:
windows 10 anaconda安装 
windowns 10 vscode安装


扩展学习:
ubantu环境熟悉
ubantu上搭建docker

python conda环境

初学者推荐使用conda,因为它帮你处理了很多的依赖问题

anaconda安装

 
到
https://www.anaconda.com/
下载及安装

conda命令行大全
https://blog.csdn.net/2402_84205067/article/details/140143471


windows直接下一步下一步,安装完成后在所有应用中找到Aanconda3的应用程序,就可以尝试使用了

这里以ubantu为例,记录一次执行过程
Anaconda3-2022.10-Linux-x86_64.sh 对应python3.9 
安装用户可以是root,也可以是普通用户  

sudo mkdir -p /ai/app
sudo chown -R xt.xt /ai/
sh Anaconda3-2022.10-Linux-x86_64.sh
Anaconda3 will now be installed into this location:
/home/xt/anaconda3
    - Press ENTER to confirm the location
    - Press CTRL-C to abort the installation
    - Or specify a different location below

[/home/xt/anaconda3] >>> /ai/app/anaconda3
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes
Traceback (most recent call last):
    File "/ai/app/anaconda39/bin/conda", line 14, in 
    from conda.cli import main
ModuleNotFoundError: No module named 'conda'
If you'd prefer that conda's base environment not be activated on startup, 
    set the auto_activate_base parameter to false: 

conda config --set auto_activate_base false

Thank you for installing Anaconda3!
===========================================================================

环境变量配置,添加用户,Jupyter的运行需要普通用户 
adduser py39
chown -R py39.py39 /ai/app/anaconda3/
su - py39

添加环境变量 
export PATH=/ai/app/anaconda3/bin:$PATH

AI 开发工具IDE

jupyter:
免费
针对数据科学
很多数据科学家就用这个,用这个足够完成AI的开发 
Tab+Shift的参数说明,超级适合初学者

vscode+插件:
免费
并不针对哪个语言,或者说大多语言都可以用它开发,只是方便程度不一样,
vscode+插件几乎能满足你的一切需求,
比如你需要一个功能,也不知道应该安装什么插件,此时你应该上网搜索一下

pycharm:
有收费版与社区版
针对python的IDEA系列开发工具
pycharm官网下载(社区版在页面最下面)

pycharm python环境变量配置


Add new interpreter:
    Conda Env:/Users/73xt/app/python/anaconda3/bin/conda
默认的conda对应base环境的python

Jupyter Notebook安装

安装jupyter

 
conda自带有jupyter,
python则执行以下命令
pip install jupyter 

jupyter远程配置


配置python环境变量,告诉jupyter python库目录在哪
PATHHONPATH=/home/xt/anaconda3/lib/python3.9/site-packages

jupyter notebook password #设置 jupyter 的密码
jupyter notebook --generate-config #生成自己配置文件,目录在 ~/.jupyter/jupyter_notebook_config.py

示例
jupyter notebook password
book_1234

$ jupyter notebook --generate-config
vim ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip='*'
c.NotebookApp.open_browser=False
c.NotebookApp.port=8888

启动
jupyter notebook
jupyter notebook --ip 0.0.0.0
jupyter notebook --ip 0.0.0.0 --allow-root

访问
http://ip:8888/
虚拟机中有多个IP,且上面的方式访问不通时,可关闭防火墙
centos7关闭防火墙(ubantu没有防火墙问题,所以不需要你去关)
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld

也可能是虚拟机与主机共享了IP所致,可尝试
http://localhost:8888/

docker中搭建AI环境的好处

 
## docker中搭建AI环境的好处
  - 降低入门难度,节省时间
  - 对python不了解的同学,可直接使用老师搭建的docker环境,快速上手
  - 先熟悉AI,日常学习中再慢慢了解python语法及各种依赖包的安装
- 消除python依赖版本的影响
  - 随时人工智能发展,所有的python模块版本也在不断地迭代
  - 不同的版本,API调用不一样
  - 直接使用老师配置好的docker环境,可保持与课上老师代码版本一致
  - 可避免因版本不一致带来的各种bug问题
- 面试亮点,工作需要
  - 简历中如果写上会使用docker,是个亮点
  - 人工智能的代码具有很大的不确定性
  - 开发环境如果使用docker
  - 可直接将该docker发布到线上,可极大减少线上环境与开发环境不一致的问题
  - 学习docker对未来工作会有助益

参考文章