Commit cd7f72b6 authored by Carsten Eie Frigaard's avatar Carsten Eie Frigaard
Browse files

moved_lessons_added_ANN_exe

parent 6fe1ff4a
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ITMAL Exercise\n",
"\n",
"\n",
"## Artificial Neural Networks\n",
"\n",
"Afprøv Scikit-learns version af supervised neural network – mere specifikt arbejder vi her med 2-lags Multi Layer Perceptron (klassisk feedforward ANN, der findes mange andre typer ANNs). Scikit Learns funktion til regression hedder MLPRegression.\n",
"\n",
"Vi antager at I har fået data, som beskrevet nederst i ”ANN_example.py” (i denne uges materiale) – dvs. feature \n",
"\n",
" x = np.linspace(-10,10,1000)\n",
"\n",
"og output værdi \n",
"\n",
" y = np.sinc(x)\n",
" \n",
"altså en såkaldt `sinc`-funktion (Bemærk – det her er blot til illustration af, at MLP regressionsmodeller kan fitte vilkårlige funktioner, og også i flere dimensioner). Opgaven er nu at ”lære”/”træne” netværket til dette output.\n",
"\n",
"#### Qa)\n",
"\n",
"Fit modellen til data. Benyt i starten kun 2 skjulte neuroner (hidden_layer_sizes)\n",
"\n",
"#### Qb)\n",
"\n",
"Tegn den grafiske model for netværket, gerne blot en håndtegning. Skriv vægtenes værdi på grafen. Husk bias.\n",
"\n",
"#### Qc)\n",
"\n",
"Opskriv udtrykket for y – dvs. i stil med \n",
"\n",
" y = 0.3* tanh(2 * x + 0.1) + 0.3 * tanh(5 * x + 3) + 1. \n",
" \n",
"OBS: I kan godt nøjes med fx. 1-2 betydende decimaler.\n",
"\n",
"#### Qd)\n",
"\n",
"Plot funktionen vha. `np.tanh` – dvs. i stil med \n",
"\n",
" y = 0.3*np.tanh(2 * x + ..\n",
" \n",
"hvor x er input data.\n",
"\n",
"#### Qe)\n",
"\n",
"Plot også første del af funktionen samt anden del, hver for sig (fx. `0.3* tanh(2 * x + 0.1)` og \n",
"`0.3 * tanh(5 * x + 3)`) – summen af disse to skal jo gerne give den samlede funktion (pånær bias-\n",
"leddet)\n",
"\n",
"#### Qf)\n",
"\n",
"Prøv også at fitte funktionen med flere led (fx. 5). Plot resultatet.\n",
"\n",
"#### [OPTIONAL] Qg) \n",
"\n",
"Optional : Prøv at ændre alpha til fx. 1e5 og 1e-1 – forklar hvad der sker (tip: regularisering).\n",
"\n",
"Tips : I kan tage udgangspunkt i koden til denne uge, også til fitting af modellen. I kan blot ændre fx. hidden_layer_sizes.\n",
"\n",
"OBS: Når I laver dybe neurale netværk (DNN) – herunder CNN etc., så er det nok bedre at bruge andre biblioteker såsom Keras. Men Scikit learns funktion er ret simpel og god til denne opgave."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# TODO: ANN implemetation.."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"REVISIONS| |\n",
"---------| |\n",
"2021-1004| CEF, initial, converted from old word format."
]
}
],
"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.8.5"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:markdown id: tags:
# ITMAL Exercise
## Artificial Neural Networks
Afprøv Scikit-learns version af supervised neural network – mere specifikt arbejder vi her med 2-lags Multi Layer Perceptron (klassisk feedforward ANN, der findes mange andre typer ANNs). Scikit Learns funktion til regression hedder MLPRegression.
Vi antager at I har fået data, som beskrevet nederst i ”ANN_example.py” (i denne uges materiale) – dvs. feature
x = np.linspace(-10,10,1000)
og output værdi
y = np.sinc(x)
altså en såkaldt `sinc`-funktion (Bemærk – det her er blot til illustration af, at MLP regressionsmodeller kan fitte vilkårlige funktioner, og også i flere dimensioner). Opgaven er nu at ”lære”/”træne” netværket til dette output.
#### Qa)
Fit modellen til data. Benyt i starten kun 2 skjulte neuroner (hidden_layer_sizes)
#### Qb)
Tegn den grafiske model for netværket, gerne blot en håndtegning. Skriv vægtenes værdi på grafen. Husk bias.
#### Qc)
Opskriv udtrykket for y – dvs. i stil med
y = 0.3* tanh(2 * x + 0.1) + 0.3 * tanh(5 * x + 3) + 1.
OBS: I kan godt nøjes med fx. 1-2 betydende decimaler.
#### Qd)
Plot funktionen vha. `np.tanh` – dvs. i stil med
y = 0.3*np.tanh(2 * x + ..
hvor x er input data.
#### Qe)
Plot også første del af funktionen samt anden del, hver for sig (fx. `0.3* tanh(2 * x + 0.1)` og
`0.3 * tanh(5 * x + 3)`) – summen af disse to skal jo gerne give den samlede funktion (pånær bias-
leddet)
#### Qf)
Prøv også at fitte funktionen med flere led (fx. 5). Plot resultatet.
#### [OPTIONAL] Qg)
Optional : Prøv at ændre alpha til fx. 1e5 og 1e-1 – forklar hvad der sker (tip: regularisering).
Tips : I kan tage udgangspunkt i koden til denne uge, også til fitting af modellen. I kan blot ændre fx. hidden_layer_sizes.
OBS: Når I laver dybe neurale netværk (DNN) – herunder CNN etc., så er det nok bedre at bruge andre biblioteker såsom Keras. Men Scikit learns funktion er ret simpel og god til denne opgave.
%% Cell type:code id: tags:
``` python
# TODO: ANN implemetation..
```
%% Cell type:markdown id: tags:
REVISIONS| |
---------| |
2021-1004| CEF, initial, converted from old word format.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment