syntax.us Let the syntax do the talking
Blog Contact Posts Questions Tags Hire Me

Question:
What is 2015_1206 Code Challenge?

The 2015_1206 Code Challenge is a learning exercise for students attending Dan's Linux JavaScript Class at 3pm on 2015-12-06 at Hacker Dojo:

http://www.meetup.com/Dans-Linux-JavaScript-Class/events/227160400

In class we will study a repository with the chrome-browser debugger:

https://github.com/danbikle/app30

Already, the above repository should be deployed at heroku.com for you so you can use a browser (Chrome works best) to study the behavior of the JavaScript:

https://app30.herokuapp.com

We start with three tasks: Install Ubuntu, enhance it, and create account named ann:
  • After I learn some Emacs or some other editor, I Install Node.js in this folder: ~ann/node/
  • cd ~ann
    wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.gz
    tar zxf node-v5.0.0-linux-x64.tar.gz
    rm -rf node
    mv node-v5.0.0-linux-x64 node
  • Then, I add Node.js to PATH:
    export       PATH="/home/ann/node/bin:${PATH}"
    echo 'export PATH="/home/ann/node/bin:${PATH}"' >> ~ann/.bashrc
  • Run a test:
    which node
    node -e 'console.log("hello world")'
  • Install CoffeScript to test npm:
    which npm
    npm install -g coffee-script
    ls -la /home/ann/node/lib/node_modules/
    which coffee
    coffee -e 'console.log "hello coffee!"'
  • Start work on an app:
    cd ~ann
    rm -rf app30
    git clone https://github.com/danbikle/app30.git
    cd ~ann/app30
    .  ~ann/app30/app30env.bash


If you want to deploy this repository to Heroku, follow this recipe:
  • Create an account at heroku.com website
  • Download/Install Heroku client
    cd ~ann
    wget https://s3.amazonaws.com/assets.heroku.com/heroku-client/heroku-client.tgz
    tar zxf heroku-client.tgz
    echo 'export PATH=/home/ann/heroku-client/bin:${PATH}' >> ~ann/.bashrc
    echo  export PATH=/home/ann/heroku-client/bin:${PATH}
  • I created ssh-key for ann account (assuming ann has none yet):
    ann@dev06:~$ 
    ann@dev06:~$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/ann/.ssh/id_rsa): 
    Created directory '/home/ann/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/ann/.ssh/id_rsa.
    Your public key has been saved in /home/ann/.ssh/id_rsa.pub.
    The key fingerprint is:
    7c:73:e0:26:8b:62:f6:a4:1d:78:22:e5:cd:3a:5c:eb ann@dev06
    The key randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |          .      |
    |       . . .     |
    |    .   S = .    |
    |   o +.. = o     |
    |  ..B.B..        |
    |   +oX..         |
    |    ooE          |
    +-----------------+
    ann@dev06:~$ 
    ann@dev06:~$ 
    ann@dev06:~$ 
    
  • I used heroku-client to "login" my shell. I gave a copy of ann public ssh-key to heroku:
    heroku status
    heroku auth:login
    heroku auth:whoami
    heroku keys:add
  • I used heroku-client to create a blank app named app30 at herokuapp.com
    cd ~ann/app30
    ~ann/heroku-client/bin/heroku create app30
  • git-push ~ann/app30 to heroku
    cd ~ann/app30
    git add .
    git commit -am hello
    git push heroku master
  • I saw ~ann/app30 deployed at https://app30.herokuapp.com

Questions

  • How to get started with ConvNet.js?
  • http://app30.herokuapp.com/demo/autoencoder shows a demo of Unsupervised Learning. What exactly is being learned?
  • How does Unsupervised Learning compare to Supervised Learning?
  • What is an Autoencoder?
  • AK claims that autoencoder is a regression task. What is a regression task?
  • AK claims that the network has a tight bottleneck of a few neurons in the middle. Is the network the same thing as the autoencoder?
  • AK claims that the network has a tight bottleneck of a few neurons in the middle. Why might I want a network with a tight bottleneck of a few neurons in the middle?
  • AK mentions an object called a 'decoder'. What is a decoder? How do I send it data to be decoded? How can I 'see' the decoded data?
  • On left-hand-side of the page, AK displays a button with label: 'Current image'. What is Current image and how can I see what it is?
  • On left-hand-side of the page, AK displays a quickly changing data value called, 'Forward time per example:'. What is Forward time? What are typical values you see for this measurement?
  • Can you find the JavaScript code which does: 'Forward'?
  • Can you find the JavaScript code which measures 'Forward time per example'?
  • Can you find the JavaScript code which helps display 'Forward time per example'?
  • On left-hand-side of the page, AK displays a quickly changing data value called, 'Backprop time per example:'. What is Backprop time? What are typical values you see for this measurement?
  • Can you find the JavaScript code which does: 'Backprop'?
  • Can you find the JavaScript code which measures 'Backprop time per example'?
  • Can you find the JavaScript code which helps display 'Backprop time per example'?
  • On left-hand-side of the page, AK displays a quickly changing data value called, 'Regression Loss:' What is this value and does it have a unit of measure?
  • Can you find the JavaScript code which calculates: 'Regression Loss'?
  • Can you find the JavaScript code which measures 'Regression Loss'?
  • Can you find the JavaScript code which helps display 'Regression Loss'?
  • On left-hand-side of the page, AK displays a slowly changing data value called, 'L2 Weight decay loss:', What is L2?
  • What is L2 Weight?
  • What is L2 Weight decay?
  • What is L2 Weight decay loss?
  • If the autoencoder is effective, What should happen to L2 Weight decay loss?
  • Can you find the JavaScript code which calculates: 'L2 Weight decay Loss'?
  • Can you find the JavaScript code which measures 'L2 Weight decay Loss'?
  • Can you find the JavaScript code which helps display 'L2 Weight decay Loss'?
  • On left-hand-side of the page, AK displays a slowly changing data value called, 'L1 Weight decay loss:', How do I use 'L2 Weight decay loss' to understand 'L1 Weight decay loss'?
  • On left-hand-side of the page, AK displays a data value called, 'Examples seen:', What exactly is an example?
  • Where are the examples?
  • How are the examples represented?
  • On left-hand-side of the page, AK displays a data value called, 'Learning Rate'. What is 'Learning Rate'?
  • AK allows me to change 'Learning Rate', when I do that, which JavaScript detects the new value?
  • Which JavaScript uses 'Learning Rate'?
  • On left-hand-side of the page, AK displays a button called, 'save network snapshot as JSON'. What is 'network'?
  • This button hints that 'network' is changing and I want to save snapshots. What can cause the network to change?
  • Why is JSON useful for capturing a network?
  • When the button is pressed, where is the JSON saved to?
  • When the button is pressed, JSON appears in the textarea below the button. Below that textarea is another textarea full of JavaScript. How are the two textareas related?

That could be considered an adequate code challenge for a two hour Meetup.

If you have questions, e-me:

bikle101@gmail.com


syntax.us Let the syntax do the talking
Blog Contact Posts Questions Tags Hire Me