The tricks we used, boosting grads for less likely events, and diversifying training examples have improved the quality of results. That being said though, the final results still contain some bad results occasionally. As a final filter, I threw out results that exceeded the size of the writing area and had them start over until they get it all within a specified box area.
I included in
sketch-rnn
github repo a smaller pre-trained net so if you like, you can try to run
sketch-rnn
on your machine by just running
python sample.py
.
The smaller pre-trained net generates 24 gaussian mixture distributions for each time step, and uses 2 layers of 256 LSTM nodes, with dropout keep probability of 80% employed at the outputs of each layer.
I scaled the data down in size by a factor of 15. This is an interesting problem, as the typical training examples have sizes around 80 to 160 units on each axis. I found a good rule of thumb is to scale the data down so that the average dimension of the data is in the order of 10×10, and typically for Chinese characters, the offsets of each successful step is in the order of 1×1 size.
Using minibatches of 50-100 examples seemed to work well. I tried to have a relatively larger initial learning rate, and have that learning rate decrease proportionally by 1% after each subsequent epoch. Sometimes having a learning rate too large will crash the training, and the part of the training that crashes is to do with the estimation of end-of-character likelihood. It is a bit tricky when we need to estimate the probability of unlikely events using the gradient boosting method above, and that may lead to numerical instability.
I’m quite happy with the results.
sketch-rnn
was able to generate a variety of Kanji that does not exist, but resembles somewhat the way Kanji are supposed to be writen. Many radicals and basic parts of Kanji are placed and configured in locations that makes sense in terms of forming the structure of a Kanji. It seems to resemble a child struggling to pass a Chinese dictation test and trying to wing it by desperately making up answers.
Other notable examples below I couldn’t really describe, could you?
Some examples reminds me of some Cantonese profanity converted to new Chinese characters (like 𨳊 or 撚).
I have also looked at this online handwriting database by CASIA . It will be really easy to apply this algorithm on that data and possibly train the recurrent net to generate fake cursive Chinese handwriting. Personally I don’t find that as interesting as this stroke-based dataset, because I wanted to see if the algorithm can generate distinct structures inside Chinese characters, rather than squigly handwritten characters that have already been done with the previous handwriting example.
As an additional rant, as a designer, I’m not a big fan of post 1956
The Flexx Womens Bon Gout Ballet Flat Panna Cashmere JqzhWALoH
as I feel that the PRC has done too much to simplify Chinese in an Orwellian
New Speak
sense of the language. Compare original beautiful traditional Chinese characters, their accepted simplied form pre-1900 for handwriting across Asia, and post-1956 Simplied Chinese forms in the above example.
Smallest eigenvalue
The smallest eigenvalue can be described in hypograph form λ m ( A ) ≥ t as
i.e., we can maximize the smallest eigenvalue of A .
Eigenvalue spread
The eigenvalue spread can be modeled in epigraph form
by combining the two linear matrix inequalities in (6.10) and (6.11) , i.e.,
Spectral radius
The spectral radius ρ ( A ) := max i | λ i ( A ) | can be modeled in epigraph form ρ ( A ) ≤ t using two linear matrix inequalities
Condition number of a positive definite matrix
Suppose now that A ∈ S + m . The condition number of a positive definite matrix can be minimized by noting that λ 1 ( A ) / λ m ( A ) ≤ t if and only if there exists a μ > 0 such that
or equivalently if and only if
I
⪯
μ
−
1
A
⪯
t
I
. If
A
=
A
(
x
)
is represented as in
ARMANI JEANS Mens Action Leather Fashion Sneaker Navy opV42a
then a change of variables
z
:=
x
/
μ
,
ν
:=
1
/
μ
leads to a problem of the form
Overview
Discussion is important to learning in all disciplines because it helps students process information rather than simply receive it. Leading a discussion requires skills different from lecturing. The goal of a discussion is to get students to practice thinking about the course material. Your role becomes that of facilitator. You design and facilitate the discussion rather than convey information. If you want to hold a discussion, don’t do all the talking yourself; don’t lecture to the group or talk to one student at a time.
Preparing for Discussions
To start planning a discussion (or any instruction, for that matter) decide what you want your students to get out of the discussion. For example, do you want them to share responses, make new connections, and articulate the implications of a text? Should they be able to work certain problems by the end of the hour? Should they be able to interpret and critique a journalistic photograph or a piece of art? Deciding on and articulating the objective for the discussion will help you decide what kinds of discussion activities will best help your students reach that objective. Remember that you can organize a discussion in many different ways: you can have students work in small groups, role-play, choose sides for a debate, or write and share a paragraph in response to the theme in question.You will also want to leave time to wrap up and summarize the discussion for your students (or have students summarize it), or to debrief after activities such as debates or role-plays.
Develop a Clear Goal for the Discussion
Knowing the content to be covered is not enough. Naming the chapter your students will read is not enough. If you’ve only thought as far as, “I want students to know ...” you haven't thought through enough what needs to be accomplished. You should be able to articulate what the students will be able to do with the information or ideas. For example, in a philosophy class for which students have read a chapter on epistemologies or theories of knowledge, you might want students to be able to construct legitimate arguments for and against any epistemology about which they have read.
Problematize the Topic
Having a clear goal in mind makes it much easier to plan a discussion. You know what you want students to get out of it. But it is not enough: An instructor at IU several years ago told the story of how she wanted her students to deal with the issue of prejudice. She tried to start discussion merely by saying “Discuss prejudice.” No one spoke. She then asked if anyone had seen prejudice. One student raised a hand. When she asked what it was like, the student merely said “awful.” She had a goal, but not a problem or an activity to get the students to engage the ideas to achieve the goal.
The opposite end of the spectrum is also a problem. While “Discuss prejudice” is too open-ended, merely asking for the basic facts won’t work either. You’ve probably heard a professor rattle off a list of questions that require only brief factual replies and little student involvement:
Q. When was the Battle of Hastings? A. 1066.
The result could hardly be called a discussion. So, give your students an open-ended problem to solve, a task to complete, a judgment to reach, a decision to make, or a list to create—something that begs for closure.
Select a Discussion Format
Many discussion activities can be used in the classroom. Choose one that will help your students meet your goals for the discussion. The more specific you can be in assigning the task, the more likely your students will be to succeed at it. Consider the protocols for tasks such as Think-Pair-Share, Affinity Mapping, Chalk Talk and other conversation structures.
Choose a Method to Assign Students to Groups
When assigning students to groups, consider the following questions.
Choose a Debriefing Method
Always debrief students; it is the most important part of a discussion, the time to summarize and synthesize. Most of learning in discussions happens during debriefing, so don't squeeze it in—a rule of thumb is to use one-third of the total discussion time for debriefing.
You can use debriefing to correct incorrect notions. You can slip in any points that students neglected but that are important. You can pick which student reports from each group, though you should tell them in advance that you plan to do this. This makes everyone in the group responsible. You don’t have to hear back from every group, but can instead choose a few at random. When groups start repeating ideas, it’s time to stop.
Many techniques can get students to share what their smaller groups have done with the entire class: verbally, on newsprint/flipchart, blackboard or overhead, ditto/photocopy, etc. And you don't have to hear from everyone; calling on a few groups at random to report works quite well. To encourage student cross-team competition in Team-Based Learning, reporting out from groups is simultaneous. Answers can be posted to a Powerpoint slide or pieces of newsprint hung on walls of class.
Problems with Discussion
Strategies for Building Discussion throughout a Class Session
References
Cashin, W. E. (2011). Effective classroom discussions. IDEA Paper number 49. Available at: http://www.theideacenter.org/sites/default/files/IDEA_Paper_49.pdf .About JMP
Using JMP
User Resources
Connect with JMP