Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
course-info
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
20200519029
course-info
Commits
dcf77abe
Commit
dcf77abe
authored
May 26, 2020
by
20200519029
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
上传新文件
parent
a805fd8b
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
204 additions
and
0 deletions
+204
-0
Mini-homework.ipynb
+204
-0
No files found.
Mini-homework.ipynb
0 → 100644
View file @
dcf77abe
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Problem 1. Fibonacci Sequence\n",
"在课程里,讨论过如果去找到第N个Fibonacci number。在这里,我们来试着求一下它的Closed-form解。 \n",
"\n",
"Fibonacci数列为 1,1,2,3,5,8,13,21,.... 也就第一个数为1,第二个数为1,以此类推...\n",
"我们用f(n)来数列里的第n个数,比如n=3时 f(3)=2。\n",
"\n",
"下面,来证明一下fibonacci数列的closed-form, 如下:\n",
"\n",
"$f(n)=\\frac{1}{\\sqrt{5}}(\\frac{1+\\sqrt{5}}{2})^n-\\frac{1}{\\sqrt{5}}(\\frac{1-\\sqrt{5}}{2})^n$\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"// your proof is here ....\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"令$F_{n}$表示第N个Fibonacci number,令$F_{0}=0$\n",
"设存在$M=\\left(\\begin{array}{ll}A & C \\\\ B & D\\end{array}\\right)$使得$\\left(\\begin{array}{c}F_{n} \\\\ F_{n+1}\\end{array}\\right)=M\\left(\\begin{array}{c}F_{n-1} \\\\ F_{n}\\end{array}\\right)$有$\\left(\\begin{array}{c}F_{n} \\\\ F_{n+1}\\end{array}\\right)=\\left(\\begin{array}{c}A F_{n-1}+C F_{n} \\\\ B F_{n-1}+D F_{n}\\end{array}\\right)$令$M=\\left(\\begin{array}{ll}0 & 1 \\\\ 1 & 1\\end{array}\\right)$可求出通项公式$\\left(\\begin{array}{c}F_{n} \\\\ F_{n+1}\\end{array}\\right)=M\\left(\\begin{array}{c}F_{n-1} \\\\ F_{n}\\end{array}\\right) \\Rightarrow\\left(\\begin{array}{c}F_{n} \\\\ F_{n+1}\\end{array}\\right)=M^{n}\\left(\\begin{array}{c}F_{0} \\\\ F_{1}\\end{array}\\right) \\Rightarrow\\left(\\begin{array}{c}F_{n} \\\\ F_{n+1}\\end{array}\\right)=P D^{n} P^{-1}\\left(\\begin{array}{c}0 \\\\ 1\\end{array}\\right)$解其特征方程$\\operatorname{det}(M-\\lambda I)=0$得$\\lambda=\\frac{1 \\pm \\sqrt{5}}{2}$特征向量$\\left(\\begin{array}{c}1 \\\\ \\frac{1 \\pm \\sqrt{5}}{2}\\end{array}\\right)$\n",
"$P^{-1}=\\left(\\begin{array}{cc}\\frac{\\sqrt{5}-1}{2 \\sqrt{5}} & \\frac{1}{\\sqrt{5}} \\\\ \\frac{\\sqrt{5}+1}{2 \\sqrt{5}} & -\\frac{1}{\\sqrt{5}}\\end{array}\\right)$\n",
"$F_{n}=(1 \\quad 0)\\left(\\begin{array}{ccc}1 & 1 \\\\ \\frac{1+\\sqrt{5}}{2} & \\frac{1-\\sqrt{5}}{2}\\end{array}\\right)\\left(\\begin{array}{cc}\\left(\\frac{1+\\sqrt{5}}{2}\\right)^{n} & 0 \\\\ 0 & \\left(\\frac{1-\\sqrt{5}}{2}\\right)^{n}\\end{array}\\right)\\left(\\begin{array}{cc}\\frac{\\sqrt{5}-1}{2 \\sqrt{5}} & \\frac{1}{\\sqrt{5}} \\\\ \\frac{\\sqrt{5}+1}{2 \\sqrt{5}} & -\\frac{1}{\\sqrt{5}}\\end{array}\\right)\\left(\\begin{array}{c}0 \\\\ 1\\end{array}\\right)$\n",
"$=(1 \\quad 0)\\left(\\begin{array}{ccc}1 & 1 \\\\ \\frac{1+\\sqrt{5}}{2} & \\frac{1-\\sqrt{5}}{2}\\end{array}\\right)\\left(\\begin{array}{cc}\\left.\\frac{1+\\sqrt{5}}{2}\\right)^{n} & 0 \\\\ 0 & \\left(\\frac{1-\\sqrt{5}}{2}\\right)^{n}\\end{array}\\right)\\left(\\begin{array}{c}\\frac{1}{\\sqrt{5}} \\\\ -\\frac{1}{\\sqrt{5}}\\end{array}\\right)$\n",
"$=\\frac{2^{-n}}{\\sqrt{5}}(1 \\quad 0)\\left(\\begin{array}{cc}1 & 1 \\\\ \\frac{1+\\sqrt{5}}{2} & \\frac{1-\\sqrt{5}}{2}\\end{array}\\right)\\left(\\begin{array}{c}(1+\\sqrt{5})^{n} \\\\ -(1-\\sqrt{5})^{n}\\end{array}\\right)=\\frac{\\left(\\frac{1+\\sqrt{5}}{2}\\right)^{n}-\\left(\\frac{1-\\sqrt{5}}{2}\\right)^{n}}{\\sqrt{5}}$故\n",
"$F_{n}=\\frac{\\left(\\frac{1+\\sqrt{5}}{2}\\right)^{n}-\\left(\\frac{1-\\sqrt{5}}{2}\\right)^{n}}{\\sqrt{5}}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Problem2. Algorithmic Complexity\n",
"对于下面的复杂度,从小大排一下顺序:\n",
"\n",
"$O(N), O(N^2), O(2^N), O(N\\log N), O(N!), O(1), O(\\log N), O(3^N), O(N^2\\log N), O(N^{2.1})$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"// your answer....\n",
"\n",
"$O(1),O(\\log N), O(N), O(N\\log N),O(N^2), O(N^{2.1},O(N^2\\log N), O(2^N),O(3^N), O(N!))$\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Problem 3 Dynamic Programming Problem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Edit Distance (编辑距离)\n",
"编辑距离用来计算两个字符串之间的最短距离,这里涉及到三个不通过的操作,add, delete和replace. 每一个操作我们假定需要1各单位的cost. \n",
"\n",
"例子: \"apple\", \"appl\" 之间的编辑距离为1 (需要1个删除的操作)\n",
"\"machine\", \"macaide\" dist = 2\n",
"\"mach\", \"aaach\" dist=2"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Edit Distance of 'sunday' and 'saturday' is 3.\n"
]
}
],
"source": [
"# s1, s2 are two strings\n",
"def editDistDP(s1, s2):\n",
"\n",
" m, n = len(s1), len(s2)\n",
" dp = [[0 for _ in range(n+1)] for _ in range(m+1)]\n",
"\n",
" for i in range(m + 1):\n",
" for j in range(n + 1):\n",
" # i 为0 最少操作是Insert j字符\n",
" if i == 0:\n",
" dp[i][j] = j\n",
" # j 为0 最少操作是Insert i字符\n",
" elif j == 0:\n",
" dp[i][j] = i\n",
" # 当前字符相等时不需要编辑\n",
" elif s1[i-1] == s2[j-1]:\n",
" dp[i][j] = dp[i-1][j-1]\n",
" #不相等时需要编辑,从三种操作中选取最小的加一\n",
" else:\n",
" dp[i][j] = 1 + min(dp[i][j-1], # Insert\n",
" dp[i-1][j], # Remove\n",
" dp[i-1][j-1]) # Replace \n",
" return dp[m][n]\n",
"\n",
"s1 = \"sunday\"\n",
"s2 = \"saturday\"\n",
"edit_distance = editDistDP(s1, s2)\n",
"print(\"The Edit Distance of '%s' and '%s' is %d.\"%(s1, s2, edit_distance))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Problem 4 非技术问题\n",
"本题目的目的是想再深入了解背景,之后课程的内容也会根据感兴趣的点来做适当会调整。 \n",
"\n",
"\n",
"Q1: 之前或者现在,做过哪些AI项目/NLP项目?可以适当说一下采用的解决方案,如果目前还没有想出合适的解决方案,也可以说明一下大致的想法。 请列举几个点。\n",
"前期跟着咱们训练营做过一些广告点击率预测、chatbot等项目,目前尝试使用LSTM+crf做一些词性标注项目\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"Q2: 未来想往哪个行业发展? 或者想做哪方面的项目? 请列举几个点。\n",
"医疗、金融、推荐系统等方面,想做信息检索、信息抽取、文本生成、机器翻译、问答系统的项目\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"Q3: 参加训练营,最想获得的是什么?可以列举几个点。\n",
"主要想转行,想要获得对AI/NLP领域的深入了解,能实际解决一下NLP任务,对于用到的算法能够有一些自己的思考和理解,达到NLP工程师入门级水平\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment