Profile cover photo
Profile photo
Kai Zhang
45 followers
45 followers
About
Communities and Collections
View all
Posts

Post has attachment
Add a comment...

Post has attachment
Add a comment...

Post has shared content
Add a comment...

Post has attachment

I'm wondering whether deep learning network, in particular convolutional neural network or convolutional autoencoder, are suitable for finding common patterns in a set of string. For example:

01110  101010  100000001111101001111111
101010  11111011101000010000000001111
11110000  101010  001010110101101111111

Can we train a convolutional autoencoder (unsupervised) or a convolutional neural network (supervised) to extract the feature (101010) from the strings? This looks like similar as the problem of finding patterns in images. What do you guys think? 

Post has attachment
This is a really cool introduction to bioinformatics! Check it out!
Add a comment...

Post has shared content
[Google Buzz closed down for good recently, so I will be reprinting a small number of my articles from that platform to Google+, starting with this one, in order to have a working public link to these articles. This article was originally written on Mar 3, 2011.]

Computers are notorious for interpreting language in an overly literal fashion; a single misplaced parenthesis in an otherwise flawless piece of software code can cause a computer to halt in utter incomprehension halfway through the compilation of that code.

Humans, when reading natural language, tend to be far more robust at this; once one is fluent in, say, English, one can usually deal with a reasonable number of spelling or grammatical errors in a text, particularly when the writing style is clear and organised, and the themes of the text are familiar to the reader.

However, when, as a graduate student, one encounters the task of reading a technical mathematical paper for the first time, it is often the case that one loses much of one's higher reading skills, reverting instead to a more formal and tedious line-by-line interpretation of the text. As a consequence, a single typo or undefined term in the paper can cause one's comprehension of the paper to grind to a complete halt, in much the same way that it would to a computer.

In many cases, such "compilation errors" can be resolved simply by reading ahead in the paper. In some cases, just reading the next one or two lines can shed a lot of light on the mysterious term that was just introduced, or the unexplained step in the logic. In other cases, one has to read a fair bit further ahead; if, for instance, the conclusion of Lemma 15 was difficult to understand, one can read ahead to the end of the proof of that Lemma (in which, presumably, the conclusion is obtained), or search ahead to, say, Proposition 23, in which Lemma 15 is invoked, to get more clues as to what Lemma 15 is trying to say. (The use of search functions in, say, a PDF reader, is particularly useful in this regard.)

It is also good to keep in mind that no author is infallible, and that in some cases, the simplest explanation for incomprehension is that there is a typo in the text. For instance, suppose a paper states that "Since A is true, B is true", but when one works things out, one cannot quite deduce B from A, but instead can only achieve a slightly different conclusion B'. A bit later on in the text, the paper states that "Since B is true, then C is true", but again one has difficulty deducing C from B. Here, the most likely diagnosis is that the author actually meant to write B' instead of B in both places.

Another useful trick is to "project" the paper down to a simpler and shorter paper by restricting attention to a simpler special case, or by adopting some heuristic that allows one to trivialise some technical portions of the paper (or at least make some steps of the paper plausible enough to the reader that one is willing to skip over the details of proof for those steps). For instance, if the paper is dealing with a result in general dimension, one might first specialise the paper to one dimension (even if this means that the main results are no longer new, but consequences of previous literature). Or, if the paper has to analyse both the main term in an expression as well as error terms, one can adopt the heuristic that all error terms are negligible and only focus on the main term (or dually, one can accept that the main term is always going to compute out to the correct answer, and only focus on controlling error terms). If one is aware of a near-counterexample to the main result, specialising the paper to that near-counterexample (or to a hypothetical perturbation of that near-counterexample that is trying to be a genuine counterexample) is often quite instructive. Ideally, one should project away roughly half of the difficulties of the paper, leaving behind a paper which is twice as simple, and thus presumably much easier to understand; once this is done, one can undo the projection, and return to the original paper, which is now already half understood, and again much easier to understand than before one understood the projected paper. (The difficulty of reading a paper usually increases in a super-linear fashion with the complexity of the paper, so factoring the paper into two sub-papers, each with half the complexity, is often an efficient way to proceed.)

Finally, and perhaps most importantly, reading becomes much easier when one can somehow "get into the author's head", and get a sense of what the author is trying to do with each statement or lemma in the paper, rather than focusing purely on the literal statements in the text. A good author will interleave the mathematical text with commentary that is designed to do exactly this, but even without such explicit clues, one can often get a sense of the purpose of each component of the paper by comparing it with similar components in other papers, or by seeing how such a component is used in the rest of the paper. In extreme cases, one may have to go to a large blackboard and diagram all the logical dependencies of a paper (e.g. if Lemma 6 and Lemma 8 are used to prove Theorem 10, one can draw arrows between boxes bearing these names accordingly) to get some sense of what the key steps in the paper are.
Add a comment...

Post has attachment
Add a comment...

Post has attachment
IPython-notebook supports Vim key binding in its 1.0 version. Moreover, the notebook is easier to customize than before.
 
Add a comment...

Post has shared content
Straightedge and compass constructions, now in playable web-game form.
Add a comment...
Wait while more posts are being loaded