It is all about me!
you have nothign to prove, except theorems


 
Soundtrack:

It is all about the soundtrack in your life.
The one that plays while you act on life's stage.
Po wered by WordPress

-->

September 17, 2011

Making a multilingual wordpress site with xili-language

Filed under: Computers, Django, Teaching — ivan @ 2:28 am

Wordpress is the de facto CMS for webpages. It is really better than static HTML files because you can have a generic look and feel of a website (common header with navigation) and really simple “content” pages.

Statement of the problem:

  1. Convert an existing website with static html pages to a wordpress site with a page for each of the old static pages.
  2. Modify the example multilingual version of the theme twentyeleven to fit the old look. We will use the twnentyeleven-xili child theme(copy), which extends/customizes the default twentyeleven theme that comes with wordpress.
  3. Make english and french versions of the website. (We will use the plugins xili-language, xili-dictionary)

High level overview:

1. Each page will be a separate entry in the DB. Each page is labeled as being either in “en_en” or “fr_fr” and the xili-language plugin provides the link between the different language versions. This way the page “Read this in [french]” will always link to the appropriate page.

2. Two special purpose menus are prepared “english-menu” and “french-menu” where the main navigation links (the list of all pages on the website) are listed. (This is to avoid the “auto list pages” functionality of the top menu, which would display pages in both languages)

Details and screenshots

Code:

I changed the page template for each page/post to show a link(s) to the post in other languages.

            < ?php if ( xiliml_new_list() ) xiliml_the_other_posts($post->ID,”"); // xili-language ?>

The only other change I made was to display a different nav-menu in the top of the page,
depending on which language is selected. In my header.php I have a contidional nav menu:

        < ?php
        $curlang = the_curlang();
        if ( "en_us" == $curlang ) {
         wp_nav_menu( array( 'container_class' => ‘menu-header’, ‘menu’ => ‘english-menu’, ‘theme_location’ => ‘primary’ ) );
         } if ( “fr_fr” == $curlang )  {
          wp_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘menu’ => ‘french-menu’, ‘theme_location’ => ‘primary’ ) );
          }
        ?>

The two menus “english-menu” and “french-menu” I created manually from with wordpress menu GUI:
screen-shot-2011-09-17-at-12238-am.png

More generally you can use the function the_curlang(); anywhere in your templates to produce different content for en_en and fr_fr. I have the following thing in footer.php:

        < ?php
        $curlang = the_curlang();
        if ( "en_us" == $curlang ) {
        ?>

 English stuff.         

       < ?php
         } if ( "fr_fr" == $curlang )  {
        ?>

 stuff en Francais 

        < ?php   }    ?>

When I realized that the above code works, this totally shocked me.
Seriously PHP? You have code in between html source and they just
blend together. This is absolutely brilliant in terms of expressiveness!
At the same time I understand how it would be a nightmare to develop with,
and where the whole idea of “dumb” template languages (django templates for ex) comes from.

Setup the plugins:
screen-shot-2011-09-17-at-12426-am.png

Make sure you have your languages setup in the xili-language settings menu:
screen-shot-2011-09-17-at-12442-am.png

Setup the theme:
screen-shot-2011-09-17-at-12503-am.png

Then when creating a page/post you have to choose a unique URL (I am using the /%postname%/ kind of permalinks),
identify its language, and identify its “counterpart” in the other language. The number you see is the post/page id — you have to deduct that from the URL, since it is now show anywhere else…
screen-shot-2011-09-17-at-12348-am.png

That’s all. Thank you xili-language — very elegant solution.
For a complete reference of the php functions that are provided see here.


September 7, 2011

cool videos on LDA

Filed under: Computer Science, liblda — ivan @ 11:58 pm

man bites dog
vs
dog bites man

topic models wouldn’t know the difference
via Tom Griffiths’ talk on LDA


Just a quick note, wikipedia has 1,570,455,731 words in it. I have trained topic models with 6M, so I probably need to optimize liblda a bit before I can tackle this dataset. It must be done though.

Tomorrow we merge topics. Tomorrow we find subjects. No more wavering. Focus. Focus in-a-de ante meridiem.


August 17, 2011

Reality check for Minireference

Filed under: Science, Minireference — ivan @ 1:47 pm

For the past year or so, I have been writing working on my math and physics tutorials book thinking that it is a completely original idea. Who else can teach you the material from 5 university-level courses in a compact 300 page book with informal language?

Lately, I ran into a bunch of tutorials that are really good though. The material in some of these overlaps significantly with the material that is covered in my book:

  • The HMC Calculus tutorials are really great and cover nearly all the topics of Calculus in a concise fashion. Free to the user as html+jsMath or PDF version.
  • Wikibooks also has an excellent book on Calculus which is very comprehensive, with exercises and lots of topics covered.
  • Then there is the wiki book Physics Study Guide which is also kind of good.
  • Yet another book is Physics with caculus, which presumably will have more derivations and less hand waving.

Ok. So it HAS been done before. Now is minireference better? Am-I such a brilliant teacher that I can teach (through the written word) the material in a more efficient manner? Is the swearing and the jokes worth it to the reader?

Right now, what I am thinking is that nobody has both calculus and physics in a single package. Besides, think of the bring side — now I have some excellent sources to plagiarize ;)


July 23, 2011

Summer

Filed under: Graduate Life — ivan @ 1:13 pm

I can tell you why the GDP of “hot” countries is smaller than the northern countries…
You can’t work when its 40 degrees with the humidex. Ur brain cooks.

I need to be productive though. Got to get that poster ready, and some slides for the conference.
I am running to the office where the AC.
- paper revision
- poster

slides can wait

vamolos


July 19, 2011

Google Predictions API is in the house

Filed under: Computer Science, Categories, Business — ivan @ 3:46 pm

In this business plan I made a while back about LDA-based business models, I pointed out that “Google could leverage their expertise and infrastructure and decide to start offering a “categories service” tomorrow. This would make things more difficult for \company”.

Today I browsed around to see what they have.
They don’t have unsupervised models yet. It is harder to automate those…
Unsupervised is the key — supervised I can do in EXCEL. ;)

Also I was super shocked when I saw this:
screen-shot-2011-07-19-at-23710-pm.png
Have you seen that before on a google product?
“Pricing.” A little blue link — feels weird coming from big G ;)

Ok.
So what does that mean for my company?
It means that the notion of “ML as a service” has come.
Good time to be in that biz.

This is their pricing for storage and this one for predictions.

Say you are a small media company that wants to “categorize”
news stories on your website. Most of your content comes from
crawling the web for news articles on niche topics.

You can “crawl” thousands and thousands (say 50k) of articles per day.
Following all kinds of news feeds. To keep you “model” up to date
with Google predictions you would need:
(50k - 10k free = 40k) * $0.05/1,000 updates = 2$
(So basically, unless you have LOTS of data, updating the model is cheap)

Now the news site, what they want is predictions for each of these 50k articles:
“what category should I put this article in?”
this costs
(50k - 10k free = 40k) * $0.50/1,000 predictions = 20$
Gimme 20 bucks, and I will help you predict some stuff.
Can them make 20$ in advertisement that day? Is it worth it?

I need to think more about their price proposition. Google Predictions API
gives you the fruits of the trained model, but not the model.

Which makes me think about who will be my customers?
People who have more stuff? Maybe they have less stuff but want better algorithms?
People who want more control over the algos?

It is not clear to me if at these prices it makes sense for someone with LOTS
of data and lots of predictions to use google. If someone wants to build a
company that will rely on Machine Learning, then they better do it in-house
than have to pay someone for their daily operations. No?
I am starting to think Google predictions API is more targeted at people with
lots of data who do little querying — think of it as some sort of reporting API.


July 14, 2011

Got neighbours?

Filed under: Linux, Python — ivan @ 7:23 pm

Do they have WIFI?
Do you want in on that shit?

screen-shot-2011-07-14-at-71402-pm.png

wifite is what you want…. [I have been running all the commands in that script manually, and always though how a script could make things easier. Not sure how effective it is on WPA keys. WEP keys are super easy to crack.]

Requirements: Linux OS (bootable CD is fine) and a full-featured wifi card (I bought the cheapest thing around TP-Link TL-WN321G and it works great).


July 9, 2011

ideas

Filed under: Computers, Minireference, Business, Teaching — ivan @ 11:35 pm

me: have you heard of an email support service where you sent out an email and it gets posted to “reddit” say
and then if people reply, you automatically receive the replys as emails
an email interface to question boards liek quora and stack overflow?

N: no

me: i mean there are lots of people out there willing to ans questions
this could be the best support desk ever !

____

I was thinking speciifcally about minireference.com/QA/ message board
but it would be nice if we can offer a “chill tutoring service by email or sms”

Q:wht is the integral of sin(x) dx ?

gets posted on the QA
wait 1h
if no answers:
send an email out to one of PhDs[1] being paid to answer emails
he replies within 1h too, chill

A: -1*cos(x) is the general integral, but if there are limits then \int_a^b sin(x) dx = cos(a) - cos(b)
is broadcast back to student (by sms or email)

____

The idea of automatically posting to reddit / quora / stack overflow … might be considered spamming in a way.
I am sure some of you will object. Boo, you are nothing but an evil script kiddie coming to spoil our online question answering fun!
Yes.
But you need to think big on this one.
It is not just one script — it is a whole kind of script type:

I see the need for “active web agents proxy” which do stuff for us on the web.
Examples are the facebook contacts exporter script (chrome plugin) and all the greasmeonkey scripts and firefox add ons.
Arming the user with the programming API (a for loop) is giving them great power.
Putting such scripts in the browser makes them virtually indistinguishable from normal browsing behaviour that the user might have.

But what if you could “detach” from you firefox instance, change location login from a different computer and “reattach” back to that session?
I mean what happens when you close the lid of your laptop?
If you had 30 tabs open in your web browser, of which say 15 of these had some long lasting connection thing going on, and all those connections got shut down. No HTTP, no TCP/IP no nothing bro. Now say you wanted to keep appearing as “online” in gmail and not turn orange. (Because the change of orange to green is a leak of information — it means you were not online for some time and then you just came to the computer — so if someone wanted to interrupt you, they would have a good chance: the usual strategy of not responding and pretending to be busy or not there doesn’t work — “hey we all just saw that icon turn from orange to green, don’t pretend you are not there!” )

OK, I hear what you are saying — “why don’t you just change your status to be permanently away (or invisible or logged out) then your status will be constant and you wont leak lifestyle information.
( Say this is your job and you have to appear online. )

Ok so how do you use that shit?
Well instead of logging on to the web via

you ----> wifi router ----> dslmodel -----> ISP ---> internet

you connect via a “active web agents proxy” (AWAP)

you ----> wifi router ----> AWAP ---> dslmodel -----> ISP ---> internet

if the website requires an SSL conneciton then there will be two:

you ----> wifi router ----> AWAP ---> dslmodel -----> ISP ---> internet
|-------ssl1----------------| |----------------------------ssl2---- |

but AWAP is not just a proxy (that can keep you logged in and manage sessions for you)
but also it is “active” in that it has a “user script” for each website/web service you usually connect to
and gives you an scripting API.
“Export photos” from flickr
“Export profile” from anywhere
“Backup Gmail” to save all you passwords and online personna

Technically all those scripts are normal things users are allowed to do,
but they might be complicated to do and require a lot of manual repetition
click click click….
Giving scripting power to the people has got to be a good thing.
And where do we run such scripts on?
How is that for a the killer app of the freedom box?

____

[1] http://truffles.me.uk/exambuff-open-sourced-startup


June 13, 2011

Got categories?

Filed under: Computer Science, Graduate Life, Categories, Business, liblda — ivan @ 9:26 pm

We got algorithms:

screen-shot-2011-06-13-at-92243-pm.png

UPDATE 9:33PM: Algorithms are good and all, but now we need data.

And now we have data too. So lets get cracking my friend!

Description of the problem: You have one day to take this set of 2484 documents and produce a meaningful categorization of the topics in the documents. What are these documents about?

Input: You don’t actually have the full documents. You only have some statistics about which words occur in which documents. I.e. the documents are garbles — say out of privacy concerns — and instead of the full text of the documents you are only given the counts[w,d] of how many times the word w occurs in document d.


counts(:,1)
ans =

(16,1) 2
(40,1) 1
(46,1) 4
(68,1) 1
(76,1) 1
(95,1) 1
(121,1) 1
(199,1) 1
(290,1) 1
...

This means that in the document 1 (and this will be document 0 in numpy) the words word16 occurs twice, and w40

In other words, if you were to read the words of the document in alphabetical order you would see:

words( [16, 16, 40, 46, 46, 46, 46, 68, 76, 95 ]) #id2word
'ability' 'ability' 'abstract' 'abu' 'abu' 'abu' 'abu' 'access' 'accommodate' 'accumulated'

cool no?
I mean the data of “which words occur in which documents” is all there, but the document is not readable.

The important statistics about the word usage are there though. Ans since the problem was to produce a categorization of the documents, then we probably could still get the job done even without knowing the order the words appeared in.

There is in fact a very simple probabilistic model which requires precisely this kind of representation for the words: each document is a “bag of words”. I have learned recently, though, that one should not make things sound too simple, but use as precise a language as necessary. This is supposed to impress the reader. In this spirit then, because I want to impress you my dear readers — i mean what other reason would there be for me to be writing this post instead of working on the paper — for this reason I will tell you that the bag of words is the informal way of talking about the exchenagability of a set of random variables.

The NIPS data set has

size(docs_names)
1 2484
# documents
# over a dictionary of
size(words)
1 14036
# thus the matrix is
size(counts)
14036 by 2484.

Qualitative output: Say you find that there are 30 topics that are discussed in the documents, 30 categories if you prefer. Then for each topic you have to show the common words of that topic. The users are meant to look at the words, and be like “yeah i know which words these are, this is topic so and so”. I have that part down pat.

Quantitative output: Now why are your categories better than Blei, Jordan and Ng’s? Do you have something measurable you can use to prove your algorithms are better than the baseline?

Ok time to code.

UPDATE June 15th

We have the NIPS corpus under control and liblda just had its way with it.
Lo and behold the data from the first run on the data.

I wanted to see for how long I should run the algorithm before I can read out a “good value”.
An intuitive measure of this is the perplexity: how surprized am I to see the words that I see
in the documents. If you have a good model M then the uncertainty of the
data X given the model
is H(X|M) should be a small quantity. In other
words, if the model “knows what it is talking about” then you should be able to predict which
words will be in the document just by looking at the mixture of topics.

My algorithm (actually Griffiths and Steyvers’) starts from a completely random assignment
of topics — if the model was some set of “category boxes” that the documents have to be
filed in, then the algorithm begins by throwing all the documents around in random boxes.
As you can see by the graph when we initialize the model the perplexity is pretty high.
If you were try to look at the topics that the model predicts you will see random words,
with the most likely words in the corpus appearing more often, but in all other senses
completely non-sensical.

This is where Gibbs random sampling comes into the picture: a very simple procedure which consists
of picking up one document out of a box looking at it and throwing it — again randomly —
into a new box. You could put it back in the same box, but if another box has higher likelihood
you are more likely to put it in that box.
(Actually we don’t throw entire documents but individual words, but the analogy would brake down.)

After a while, and in my case this was about 700 repetitions of the whole “de-boxing and re-boxing”
algorithm starts to predict the contents of the document pretty well:
perplexity_on_nips_w_a0_1_b0_01_t50.png

Definition of perplexity text: Given just the model M, and the id of a document d_id,
predict the value of the word count vector counts(:,d_id), for that document.

How does LDA do this? As far as the model M is concerned, document d corresponds to a vector theta_d in mathbb(R)^T. Of if you are not the geometric kind you can think of the vector as a probability distribution p(t|d). LDA describes the document as a mixture of topics, and that mixture is p(t|d). Ok so what is a topic then and how the hell is this topic thing going to help me predict the word counts?

Glad you asked. In fact, the two quesitons that you asked are related. You see a topic t_id is another mixture — a mixture of words distributed according to p(w|t_id). LDA learns that too


In [12]: list(enumerate(theta[0,:]) #theta is what we call p(t|d) in liblda
[(0, 0.00014556040756914121),
(1, 0.026346433770014558),
(2, 0.00014556040756914121),
(3, 0.010334788937409025),
(4, 0.0074235807860262007),
(5, 0.030713245997088797),
(6, 0.010334788937409025),
(7, 0.0030567685589519655),
(8, 0.0016011644832605533),
(9, 0.00014556040756914121),
(10, 0.00014556040756914121),
(11, 0.0088791848617176122),
(12, 0.10931586608442503),
(13, 0.32620087336244541),
(14, 0.00014556040756914121),
(15, 0.00014556040756914121),
(16, 0.0074235807860262007),
(17, 0.00014556040756914121),
(18, 0.00014556040756914121),
(19, 0.0074235807860262007),
(20, 0.0030567685589519655),
(21, 0.00014556040756914121),
(22, 0.12969432314410481),
(23, 0.00014556040756914121),
(24, 0.00014556040756914121),
(25, 0.00014556040756914121),
(26, 0.0016011644832605533),
(27, 0.016157205240174673),
(28, 0.0045123726346433775),
(29, 0.17772925764192141),
(30, 0.00014556040756914121),
(31, 0.00014556040756914121),
(32, 0.0030567685589519655),
(33, 0.00014556040756914121),
(34, 0.00014556040756914121),
(35, 0.00014556040756914121),
(36, 0.0016011644832605533),
(37, 0.01470160116448326),
(38, 0.0088791848617176122),
(39, 0.00014556040756914121),
(40, 0.00014556040756914121),
(41, 0.0059679767103347891),
(42, 0.075836972343522574),
(43, 0.00014556040756914121),
(44, 0.0030567685589519655),
(45, 0.00014556040756914121),
(46, 0.0016011644832605533),
(47, 0.00014556040756914121),
(48, 0.00014556040756914121),
(49, 0.00014556040756914121)]

And then you have to compute the counts you have to take the above mixture vector p(t|d) and
multiply it as follows:

<br />
  count(w,d_id) = N_{doc} \sum_t p(w|t) p(t|d)<br />
i.e for you have to take each row of the matrix p(w|t) shown below multiply them by the corresponding mixture weight
above and add them together.


T=0 cells, cell, model, cortex, visual, orientation, cortical, receptive, input, stimulus, field, activity, response, spatial, connections, figure
T=1 learning, rules, training, rule, neural, expert, experts, task, learn, network, set, networks, knowledge, tasks, learned, data
T=2 providing, sequences, david, correspondence, entire, address, chain, shows, stress, protein, exploring, verlag, region, mathematics, principles, occupy
T=3 network, neural, networks, input, output, layer, nodes, net, node, inputs, architecture, weights, training, outputs, number, information
classification, training, class, classifier, recognition, set, classifiers, pattern, performance, error, classes, test, patterns, character, feature, data
analog, circuit, chip, figure, current, voltage, output, vlsi, input, circuits, neuron, synapse, pulse, silicon, weight, digital
neural, require, moving, caught, brenner, part, code, institute, distinguished, made, multidimensional, finally, eds, fit, population, fold
tree, node, structure, representations, language, representation, trees, nodes, connectionist, set, symbol, sequence, grammar, strings, context, role
ideas, naftali, engineering, tishby, universal, code, responses, features, department, random, independence, potentials, show, contiguous, coding, synergy
compare, knowledge, position, defined, share, account, detailed, times, low, neural, problem, squares, computation, observers, analyze, things
code, efficiency, codes, jersey, van, coding, israel, apply, traces, estimates, vertical, formulation, hebrew, quantify, engineering, correctly
motion, direction, visual, eye, velocity, field, position, head, system, map, location, moving, spatial, model, target, attention
T=12 distribution, probability, gaussian, information, density, noise, estimate, prior, approximation, variance, bayesian, function, estimation, sample, distributions, entropy
T=13 function, functions, theorem, bound, threshold, number, networks, proof, case, bounds, neural, result, set, size, complexity, class
time, routing, performance, rate, game, call, traffic, strategy, load, decision, schedule, rl, play, control, approach, table
information, definition, hebrew, involved, weak, jersey, bit, code, israel, identified, ruyter, potentials, locations, found, universality, wide
data, error, training, set, prediction, model, test, networks, regression, validation, neural, models, performance, cross, method, parameters
algorithm, learning, gradient, function, convergence, algorithms, error, vector, descent, weight, time, rate, optimal, update, problem, parameter
image, images, object, objects, features, feature, recognition, figure, model, visual, pixel, vision, local, view, pixels, based
center, van, neural, usa, scene, university, version, world, statistical, computer, code, science, spikes, brenner, quantitative, engineering
learning, error, generalization, noise, training, weight, order, large, teacher, case, student, limit, fig, function, curves, line
brenner, naftali, rob, steveninck, huji, tishby, jerusalem, william, sequences, sensory, research, convey, clear, analysis, action, motor
T=22 results, number, figure, values, work, set, simple, large, order, case, similar, single, small, process, paper, found
time, state, system, recurrent, dynamics, neural, networks, states, systems, model, dynamical, fixed, sequence, network, delay, point
rejected, flight, introduction, repeated, abstract, finish, rob, attention, universality, demanding, required, measured, makes, regional, case, lett
control, model, robot, learning, motor, controller, trajectory, arm, system, forward, feedback, figure, inverse, position, hand, movement
model, data, models, mixture, parameters, likelihood, algorithm, em, variables, log, probability, markov, hidden, conditional, bayesian, posterior
universality, representing, encode, bin, number, priori, counting, israel, information, intensity, hebrew, probability, integral, rob, provided, scaling
neurobiology, neural, science, structure, computer, institute, problem, transient, larger, amount, explained, find, neurons, generating, answer, university
T=29 neurons, network, neuron, memory, patterns, pattern, associative, input, model, capacity, activity, synaptic, neural, function, networks, phase
model, cells, system, activity, cell, brain, neurons, figure, sensory, response, behavior, neural, motor, receptor, pattern, gain
ruyter, hand, code, sources, basic, binary, tishby, view, higher, identifiable, bayesian, kernel, computer, coding, trial, science
matrix, linear, component, analysis, components, independent, pca, principal, data, ica, information, source, projection, vector, separation, learning
kernel, support, vector, set, training, margin, function, problem, regression, svm, data, kernels, risk, machines, linear, functions
space, local, points, function, functions, basis, figure, data, dimensional, point, linear, regions, rbf, gaussian, region, global
similarity, presentations, windows, bins, methods, unlike, individuals, naftali, sensitive, standard, correlated, functional, jersey, make, find, differences
universality, sec, school, department, introduction, experiment, grant, drive, code, divergence, sequence, property, present, related, reflection, draw
learning, algorithm, examples, loss, probability, hypothesis, distribution, sample, set, algorithms, class, concept, query, space, learner, positive
search, level, algorithms, genetic, resolution, wavelet, time, structure, algorithm, hierarchical, hierarchy, population, function, levels, coarse, compression
signal, frequency, time, noise, filter, signals, auditory, temporal, filters, processing, system, information, model, phase, sound, figure
speech, recognition, word, system, training, hmm, context, words, speaker, time, phoneme, acoustic, state, frame, performance, sequence
performance, face, human, subjects, task, detection, data, target, set, eeg, faces, analysis, false, based, rate, subject
T=42 learning, state, reinforcement, action, policy, time, optimal, actions, states, function, sutton, reward, environment, algorithm, control, step
distance, vectors, vector, data, clustering, cluster, space, algorithm, feature, tangent, clusters, map, set, transformation, learning, kohonen
units, network, hidden, unit, learning, input, weights, output, training, layer, networks, weight, propagation, net, patterns, error
firing, spike, neuron, neurons, synaptic, time, input, model, rate, membrane, cell, synapses, potential, spikes, current, information
universality, neural, bialek, school, princeton, independence, fly, flies, theory, department, talk, shown, tishby, cases, emerge, systems
energy, problem, field, solution, optimization, graph, function, constraint, networks, solutions, constraints, boltzmann, neural, method, annealing, local
system, parallel, bit, time, neural, data, block, memory, speed, processor, vector, systems, implementation, weight, processing, performance
T=49 visual, sufficiently, directional, related, ens, smaller, variability, times, hope, based, rob, usa, find, avg, http, computation

Ok I know what you are thinking. I was reading this post and having a good time, and then whaaam the author starts throwing these massive lists of words and number and what not. Yes, but this is how it goes in ML. It is all about the data. So I show you the data. If you prefer some high level journalistic sugar, please look elsewhere. Here we don’t simplify.

No no, we will simplify, I was just kidding. The mixture of topics in document 0 consists mostly of zeros, except for the following


In [12]: list(enumerate(theta[0,:] # p(t|d)
(13, 0.32620087336244541),
(29, 0.17772925764192141),
(22, 0.12969432314410481),
(12, 0.10931586608442503),
(42, 0.075836972343522574

So the model thinks that if you mix the words below

T=13 function, functions, theorem, bound, threshold, number, networks, proof,
T=29 neurons, network, neuron, memory, patterns, pattern, associative, input,
T=22 results, number, figure, values, work, set, simple, large, order, case, similar
T=12 distribution, probability, gaussian, information, density, noise, estimate
T=42 learning, state, reinforcement, action, policy, time, optimal, actions, states

You will get the words in document 0.

UPDATE Jun 23: Due to too much blogging and not enough result producing, I didn’t manage to meet the deadline for the conference. Raazclaart, as they say in Jamaica. Rather than take this hit and crumble I am just going to take this hit and stand. Ain’t no stopping me, me tellz you.


June 12, 2011

June system check

Filed under: Political, Graduate Life, Neuro — ivan @ 8:11 pm

Check out the new music (Track 3) in the soundtrack on the right.

I really should be working on the paper, but there is an important insight that just now and I want to share with you all. I will describe two self-reinforcing phenomena that I am observing.

On the one hand we have the SSRI usage epidemic where one in five people in North America is popping pills to deal with depression and dissatisfaction with their jobs and their life situation in society. A society in which the medical system has been hijacked by the drug companies. If a placebo is 80% as effective as an SSRI at relieving the symptoms of depression, and if there is no theory of mind to support the action mechanism, if the science isn’t there basically — does it still make sense to prescribe all those pills to all those people?

Marie-Antoinette was wrong: it is not “let them eat cake”, it is “let them take pills”.

On the other hand the increased time spent by the average individual in North America using the internet is leading to the phenomenon of psychosis by isolation. TV was something, but the Internet is something else all together. How many hours do you spend online each day? Do you think this is good for you mental health? Sure, you can shrug this question off, but there is no doubt that a significant change has happened in the last years as broadband to the home and mobile internet have entered the lives of the mainstream.

Internet addiction is a whole subject on its own, but it is beyound the scope of this note. The effects of the increased isolation and communication via computer that I am after. The effects are different for extroverts and introverts. (Oh my god, I am using terminology from psychology. Fuck. Now I can’t bitch about their field being retarded. Hmm… I guess I could always make attacks ad hominem — they are retarded (for using non-statistically significant tests with miniature samples and getting all their data from stupid questionnaires), psychology itself is one of the most fundamental subjects.)

For introverts the real world isolation is not an unpleasant thing. They connect much more with the rational hemisphere and can find their true friends online. Their mode of communication will be email, and blogging and being part of some community like the Debian project. All this isolation from humans leads to a big social anxiety problem and complete disconnect. Once connected to the Internet the introvert doesn’t want to leave.

The extroverts story is more complicated. For them the Internet is just a medium to connect and see the pictures of your real world friends. To pick up. To show off (legs, boobs, clothes, and make-up for girls and pecks, cars and sense of humour for guys). To gossip. To be liked. The frequency of communication is much higher for extroverts, but less content is actually being communicated. In fact, one could argue that there is no information being exchanged at all but that social media is some sort of distributed code, where if you ping your friends enough times they will know you are their friend.

I think part of the problem stems from the fact that we have ported the real-world signs of friendship in the digital realm. In the real world friends talk and listen to each other (sharing feels good) and receive information from each other (knowledge buzz). On the Internet the closest analogues are blogging/commenting and sharing links. The internet, you would think, is going to be a great thing for the extroverts.

But something doesn’t work out. A bad guy with curly hair comes in and builds a website on which you can post short messages on your friends profiles. Suddenly the notion of a profile is born and a hundred thousand blogs die before they are ever born. With the death of the blog dies deep thought, the possibility of meaningful conversation and true sharing of feelings and thoughts. The written word basically.

Like a player who wants to sleep with as many girls as humanly possible, the social-web-whore will try to tweet as many cool things and funny quips of words. She will put as many exclamation marks and loving words in the textarea of that wall post as is necessary to illustrate that she really cares. Rather than users wanting to increase their reputation by posting only the most high quality links they find, another thing happens, namely that people just become attention-whores and add 300+ friends. And post post post away they go. The stuff that gets shared is the same old mainstream shit though. Since there is not enough room to verbalize your own opinion in the description textarea, you end up not having an opinion. Collectively as a society, after a momentary step forward with the whole www thing, we are back to square one: the medias produce and the masses consume.

But if this were the only problem, the Internet wouldn’t be such a bad deal for the extroverts. The worse part comes when they realize that all that social network which they have weaved like hard working little spiders is useless as shit when you really feel down. When you want to actually talk to a real friend and have their attention for 3 minutes straight and not have them check their smart phone. There people aren’t your friends, they are just rows in a many-to-many relationship SQL table. When the extrovert realizes the superficiality of his online friends he/she feels depressed, the same way the average employee doing a meaningless job gets depressed when he/she realizes this.

All in all, I find it quite disappointing that this is how the Internet is turning out.


June 2, 2011

Power of June

Filed under: Graduate Life, Python, liblda — ivan @ 10:37 pm

It is the summer. Well it is kind of cold today, but at least yesterday and before yesterday it was hot. Hot is good. Hot means shorts and T-shirts. Hot means beer on terraces, hidden pool, and morning energy from the sun.

Today I was feeling down under the blows of my weak topic model algorithms and the missed NIPS deadline. I spent the whole day trying things out, with little success. But just now, in the last 30 minutes or so I figured it all out. Tomorrow it will be coded up (in python for testing and in C for speed) and then I can go back to feeling good about myself.

Topics will be learned! And good ones too.

I know, I know what you are going to say. I should not take my research failures to heart. I should feel good about myself regardless of my intellectual performance. I am working on that, but until I get there I like to be success so I can walk straight and confident.

What did you do today? I kicked ass!


Next Page »