Visual Analytics: 2016-2017
|
Lecturer |
|
|
Degrees |
Schedule C1 (CS&P) — Computer Science and Philosophy Schedule C1 — Computer Science |
|
Term |
Hilary Term 2017 (16 lectures) |
Overview
Computer-supported data visualization (commonly referred to as Visualization for short) is a study of transformation from data to visual representations in order to facilitate effective and efficient cognitive processes in performing tasks involving data. Visual analytics is an advanced form of visualization, in which a visualization process features a significant amount of computational analysis and human-computer interaction. Since the term was coined in 2004, visual analytics has become a de facto standard approach to the development of a practical computer-support system for understanding complex and large scale data. This course introduces students to the fundamentals of visualization as a scholarly subject. It presents major concepts in visualization design and methods for algorithmic development, in conjunction with a close examination of several important data analysis and visualization techniques. It provides students with opportunities to explore the latest research topics in visual analytics.
Please note: course materials and further resources are available on Prof. Chen's website:
https://sites.google.com/site/drminchen/va
Learning outcomes
Students satisfying the prerequisites are expected to:• understand the purpose of visualization in general and visual analytics in particular;
• be conversant with a collection of visualization and analysis techniques;
• gain confidence and competence in performing data analysis and visualization tasks;
• appreciate the uses and importance of visualization in data-intensive applications;
• appreciate the fundamental role of perception and cognition in visual analytics; and
• engage in discussions on the latest theoretical research topics.
Prerequisites
Students taking this course should have acquired essential knowledge of computer science including basic concepts in discrete mathematics, probability, and algorithm complexity. Students are also expected to be competent in programming, and if required, have the ability to learn a simple programming language (e.g., JavaScript) quickly.Synopsis
This course covers a broad range of topics in visualization (at different levels of detail). Students will be exposed to a variety of visual representations, including basic statistical graphics; popular representations such as tag clouds, treemaps and parallel coordinates; pixel-, glyph-, graph- and map-based representations; visual representations of scalar, vector and tensor fields; and visual representations of temporal or spatiotemporal data.
In particular, students will study the methodology of formulating a visual analytics pipeline by combining interactive visualization with analytical techniques (e.g., filtering, clustering, and dimensionality reduction), and will gain an understanding of the fundamental concept that interactive visualization helps break the conditions of data processing inequality, which is a constraint typically imposed on most automated analytical processes.
The course will help students to answer questions such as:
- What is visualization really for?
- What are the relative merits and limitations of some important techniques in visual analytics?
- What are the theoretical and technical challenges to be addressed?
Syllabus
- "Hello, visualization." main concepts, subject overview, and hand-on experience.
- Visualization from different perspectives (a) data-centric view, (b) task-centric view, (c) domain-centric view, and (d) information theoretic view.
- Technical case study 1: Parallel coordinates visualization.
- Visual mappings and perceptual considerations.
- Technical case study 2: Volume visualization.
- Technical case study 3: Video visualization.
- Technical case study 4: Classification and clustering.
- Visual analytics pipelines: statistics, algorithms, visualization, interaction...
- Technical case study 5: Dimensionality reduction.
- Technical case study 6:Trees and graphs.
- Advanced topics: (a) visualization taxonomy, (b) theory of visualization, (c) quality of visualization, and (d) knowledge-assisted visualization.
Reading list
Course Texts
Matthew Ward, Georges Grinstein, and Daniel Keim. Interactive Data Visualization: Foundations, Techniques, and Applications, AK Peters, 2010.
Alexandru C. Telea, Data Visualization: Principles and Practice, AK Peters, 2008.
Pang-Ning Tan, Michael Steinbach and Vipin Kumar, Introduction to Data Mining, Pearson, 2014.
Further Readings:
Colin Ware, Information Visualization: Perception for Design, Morgan Kaufman, 2004.
Tamara Munzner, Visualization Analysis and Design, AK Peters, 2014.
Robert Spence, Information Visualization: Design for Interaction, 2nd Ed., Prentice Hall, 2006.
James J. Thomas and Kristin A. Cook (eds.), Illuminating the Path: The Research and Development Agenda for Visual Analytics. IEEE Computer Society, 2005. PDF Online.
Mike Dewar, Getting Started with D3, O'Reilly Media, 2012.
Stéphane Tufféry, Data Mining and Statistics for Decision Making, Wiley, 2011.
Other General References
Charles Hansen and Christopher Johnson, The Visualization Handbook, Academic Press, 2005.
Stuart K. Card, Jock D. Mackinlay, and Ben Shneiderman, Readings in Information Visualization: Using Vision to Think, Morgan Kaufmann, 1999.
Jacques Bertin, Semiology of Graphics, Esri Press, 1983.
Jeffrey Heer, Michael Bostock, and Vadim Ogievetsky, “A Tour through the Visualization Zoo”, Communications of the ACM, 53(6):59-67, 2010. PDF Online.
Tableau Software (Pat Hanrahan, Chris Stolte, Jock Mackinlay), Visual Analysis for Everyone: Understanding Data Exploration and Visualization, 2007. PDF Online.
William Schroeder, Ken Martin, Bill Lorensen, The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics, 2nd Ed., 1997.
Edward R. Tufte, The Visual Display of Quantitative Information, 2nd Ed., Graphics Press, 2001.
Stephen Few, Now You See It, Analytics Press, 2009.
Morris H. DeGroot, Mark J. Schervish, Probability and Statistics, Pearson, 2011.
A small collection of research papers, software and web sites will also be recommended to students during the course.


|
| ostream & | operator<< (ostream &out, const Chess &chess_object) |
| | Overloaded extraction operator. More...
|
| |
| istream & | operator>> (istream &in, Chess &chess_object) |
| | Overloaded insertion operator. More...
|
| |
| bool | anonymous_namespace{chess.cpp}::destNotInPinPath (int src, int dest, int pin) |
| | Determines if a destination square is in the pinning path as sometimes you can simply move the pinned piece closer to the pinning piece. More...
|
| |
| bool | anonymous_namespace{chess.cpp}::sameCol (int src, int dest) |
| | Determines if the source and destination squares are in the same column. More...
|
| |
| bool | anonymous_namespace{chess.cpp}::sameRow (int src, int dest) |
| | Determines if the source and destination squares are in the same row. More...
|
| |
| bool | anonymous_namespace{chess.cpp}::sameDiag (int src, int dest) |
| | Determines if the source and destination squares are in the same diagonal. More...
|
| |
| int | anonymous_namespace{chess.cpp}::squareOfPieceInPath (int src, int dest, const Chess &chess) |
| | Used to determine the coordinate of a pinned piece. More...
|
| |
| int | anonymous_namespace{chess.cpp}::incrementChoice (int src, int dest) |
| | Used to determine the increment to use when moving a piece from 'src' to 'dest'. More...
|
| |
| int | anonymous_namespace{chess.cpp}::findKingPos (int src, const Chess &chess, bool enemy) |
| | Used to determine the coordinate of a pinned piece. More...
|
| |
| string | anonymous_namespace{chess.cpp}::getPath (int num_moves) |
| | Gets the path to the object_states folder. More...
|
| |
| void | chessCAMO::printBoard (const vector< Piece * > &board, const vector< pair< int, char >> &reservoir) |
| | Iterates through the pieces on a current board representation to produce the board on the console screen. More...
|
| |
| void | chessCAMO::printFooterMessage (string input_message, const Chess &chess) |
| | Prints the footer message before each move indicating whose move it is for the current board representation. More...
|
| |
| void | chessCAMO::drawOrResign (bool clear_screen, Chess &chess, istream &in) |
| | At any moment, the players can either continue, draw, or resign. More...
|
| |
| void | chessCAMO::clearScreen (bool apply) |
| | Clears the screen of the console window using a special string instead of a platform specific command. More...
|
| |
| void | chessCAMO::printMessage (string text, int color) |
| | Prints the given message ('text') with a given 'color' to console. More...
|
| |
| void | chessCAMO::saveObject (const Chess &chess_object) |
| | Saves an object by serializing its member fields to a text file, allowing it to later be reset. More...
|
| |
| void | chessCAMO::restoreObject (Chess &chess_object) |
| | De-serializes an object from a file based on the number of moves made, essentially restoring the object's saved properties (in the file). More...
|
| |


You need stop node permissions in the organization to stop nodes.
Follow these steps to stop nodes when a project is open:
The In Use By field empties.


--- layout: default ---
I'm a result driven web developer with more than 15 years experience in custom projects development.
My areas of expertise are Drupal and Wordpress development, deployment and hardening. Data interaction between systems and bug fixing.
I like simple, clean and maintenable code. I deeply care about the code I write and the one I've been asked to look behind.
Currently I'm a senior developer at Lifetronic SRL in Pisa.
{{ post.excerpt }}


Browse our publications and work with us on visuals for your news articles.
Try out these dashboards that we've built for enterprise and let us build one custom for you!
Learn from tips and tricks from us on how we perform inventory forecasting.
Hear about our contributions toward the accessibility to the data that you need.


Toggle navigation
Welcome Austin Lubetkin
Log Out
F
"F
resh Life
"
Donatable Items:
cherry tomatoes
milk
raisin cinnamon bread
Connect to Local Food Banks to Donate Excess Food


South Africans are loving Caster Semenya’s new ‘Birthplace of Dreams’ Nike video
by Shereesa MoodleySouth Africans are coming together to celebrate Caster Semenya after Nike released a new motivational video about the Olympic athlete’s early life.
“It doesn’t matter what you look like or where you are from. What matters is that you have that fire in you to chase your dreams,” the company tweeted along with the video on Sunday.
Titled “Birthplace of Dreams”, the video didn’t take long to inspire South Africans, who took to Twitter to express their admiration for the sports star.
Some fans also quoted their favourite moments from the video as well.
The video promoting self-love and acceptance comes after the IAAF ruled earlier this year that Caster Semenya would have to take drugs to suppress her natural hormones in order to compete against other women.
Feature image: screenshot, Nike via YouTube


---
layout: post
title: TRESemme' Climate Protection Shampoo & conditioner
tags:
- Tresemme
status: publish
type: post
published: true
meta:
_edit_last: '2'
_aioseop_title: TRESemme' Climate Protection Shampoo & conditioner review
_aioseop_description: TRESemme' Climate Protection Shampoo & conditioner India review
_aioseop_keywords: TRESemme' Climate Protection Shampoo & conditioner review
_yoast_wpseo_linkdex: '67'
_yoast_wpseo_focuskw: TRESemme' Climate Protection Shampoo & conditioner
_yoast_wpseo_title: TRESemme' Climate Protection Shampoo & conditioner
_yoast_wpseo_metadesc: TRESemme' Climate Protection Shampoo & conditioner
_yoast_wpseo_meta-robots-noindex: '0'
_yoast_wpseo_meta-robots-nofollow: '0'
_yoast_wpseo_meta-robots-adv: none
_yoast_wpseo_sitemap-include: ! '-'
_yoast_wpseo_sitemap-prio: ! '-'
_yoast_wpseo_canonical: ''
_yoast_wpseo_redirect: ''
_thumbnail_id: '4799'
_yoast_wpseo_metakeywords: ''
---
TRESemme' Climate Protection Shampoo & conditioner
I had come across Tresemme during my stay in South Korea. I even used some particular shampoo from them, which I don't remember now. I was really happy when I heard Tresemme was launching in India, and grabbed up the smallest portions possible to give them a test run.
Price: Rs.64 for 100ml
Claims: Come hail or high water, you can have a gorgeous style every day!  Climate Control collection has with Keratin, Olive Oil, and UV Blockers to creates a barrier between your hair and the elements. You can’t control the weather, but you can control your style!
I have always experimented my hair with volumizing range from almost every brand, but I could not find anything volumizing from Tresemme India so I opted for climate protection. I am really impressed with the quality and pricing of the product. With one wash I could feel that my hair felt smoother and softer. I was't expecting any volume, since it is supposed to control frizz, but amazingly it did not make my hair limp.
I totally recommend this to gals with dry hair, or unmanageable locks. I am sure you will love it too.
I am eyeing their styling products now, Any Suggestions ?


35_wxy9018.py
class Solution:
def getMinDistSum(self, positions: List[List[int]]) -> float:
if len(positions) == 1 or all(p == positions[0] for p in positions):
return 0
import numpy as np
from numpy.linalg import norm as npnorm
c_pt_old = np.random.randn(2)
c_pt_new = np.random.randn(2)
while npnorm(c_pt_old-c_pt_new)>1e-6:
num = 0
denom = 0
for i in range(len(positions)):
dist = npnorm(c_pt_new - positions[i])
num += positions[i]/dist
denom += 1/dist
c_pt_old = c_pt_new
c_pt_new = num/denom
res = 0
for i in range(len(positions)):
res += npnorm(c_pt_new - positions[i])
return res


Home
Settings
Projects
Items
Collaborators
Authors
Admin Users
Register New Admin User
Change Password
Reports
Excel Reports
Log Out


Ornamentum data table component is a highly configurable lightweight Angular component which supports table view data representation. Ornamentum data table supports client/server/real-time data binding along with data filtering, sorting, grouping, pagination, selection, templating, state persistence, theming and much more.
Ornamentum data table can be integrated with any of the UI frameworks that are currently available. The fully responsive, dynamic and mobile friendly design of the user interface will deliver the best user experience in any device resolution. It's built with pure angular components and minimal peer dependencies to minimize overall bundle size. Seamless integration via developer friendly API along with a rich sample code based documentation. Ornamentum works with all angular supported browsers out of the box.
Following example depicts the basic usage of the Ornamentum Data Table. Try out yourself in Stack Blitz Demo.
Ornamentum major versions are aligned with Angular Major versions hence, You can ony use Ornamentum 8.x.x versions with Angular 8.x.x version. Latest Ornamentum version ({{packageVersion}}) require Angular 8.x.x version.
Install Ornamentum packages and it's peer dependencies using either of following command depending on your dependency manager.
or
Once the installation is successful, add the Ornamentum Data Table component to your application Root Module as shown below.
Import the Ornamentum theme style sheet reference to apply theming of your preference. Follow Angular CLI: Global Styles documentation for more information on how to integrate third party style sheets. Refer Ornamentum Themes documentation for more details about theme style sheet references.
SCSS (recommended approach): Include Ornamentum theme source SCSS references. array.
or
CSS: Include Ornamentum prebuilt CSS references.
Finally, use Ornamentum data table component.
Example usage component controller classFollowing dependencies are required to be installed along with Ornamentum.
Refer below sections for available feature/functionality usage in detail.


Homepage relaunch and modular CMS expansion
Arity is an Allstate startup that utilizes driving data and predictive analytics to evolve transportation. VSA created their branding from scratch, and it touches almost every area of Arity’s visual identity.
I was transitioned onto the Arity website after the initial instance of the website was ported over to a CMS. Our brand new scrum team was charged with evolving the design system and addressing the steady stream of new asks from the client as the startup rapidly grew and changed. Our biggest task was to completely revamp the homepage.
I became the lead designer on the website workstream of this client. I worked side-by-side with development, strategy, UX, content, and writing scrum teammates in two week agile sprints.
When I came onto the website, the homepage was still using the design from the one-page “splash page” that was created as the startup was getting on its feet. The company and site content had outgrown this original homepage and navigation.
Working closely with content and strategy teammates, we identified the pain points that the original homepage was experiencing:
These points informed the new design for the homepage. The direction we landed on utilized a light and airy layout with very modular elements. Small pops of brand colors and motion were brought in to reaffirm the company's niche in transportation/mobility and create a friendly and enticing experience as the user lands on the page.
When designing the homepage, we took the time to atomize the modules so that these brand new modules could be flexible enough to be reorganized and used on other pages when needed.
The site was built to be a CMS to empower the client to be able to get into the site and add/edit/change content as the need arose. As we continued to add to the site, we wanted to make sure that we were maintaining and expanding the modules and components in a logical way. This was an additional layer of design challenges to work through:
There was a moment on the project when we realized that the original design system was not vetted against WCAG accessibility standards. This compliance was very important to us and the client, so we worked an accessibility audit into a sprint. I took the lead on this effort. I audited the entire site and created a document to track each principle of the WCAG AA guidelines, how the current site measured up, and next steps to achieve compliance. I coordinated with the other disciplines on our team to make sure our audit was completed for all aspects of accessibility. This accessibility audit document was then used to create stories for the backlog for the team and client to prioritize fixes. This document is now being used as a standard across VSA’s interactive discipline to ensure that our projects are accessible from the start.
Throughout the process of updating the homepage and expanding the architecture of the site as a whole, each new requirement had to be carefully considered in how it fit into the atomic/modular system and CMS. New content types may require an entirely new module or adding flexibility to an existing one. With each update, I needed to design for the module’s multiple use cases, instances, and options/requirements to allow in the CMS.
Arity realized that they had outgrown their original homepage (below, left). Originally designed as a 1-page splash page, the homepage was seeing a high bounce rate and their new content was not being seen. I designed two homepage re-designs based on the content & strategy outline (below). The client picked the left design direction and we iteratively created the homepage that lives on arity.com today.


{%- endmacro %}
{{ question(
'What is the Leadership Training Institute?',
'''
The Leadership Training Institute is a program for high school students
that helps develop leadership skills. Throughout our 12-week program, our
students implement what they learn as they work to create a sustainable
community service project.
''',
'Learn More...',
'about',
'whatitis'
) }}
{{ question(
'Why LTI?',
'''
LTI is a community of high school and college students who want to better
themselves and the world around them. Through our pay-it-forward method,
and mentoring program, we achieve this goal one step at a time.
''',
'Philosophy',
'about',
) }}
{{ question(
'Who are we looking for?',
'''
We want students who are interested in learning lifelong leadership skills
and making an impact on their community. Our students come from varying
backgrounds of leadership experience and different genders, races, and
ethnicities.
''',
'Apply',
'join'
) }}
{{ question(
'How can I join?',
'''
We are looking for MIT students who are interested in giving back by
helping high school students build confidence, critical thinking, and
leadership skills.
''',
'Join',
'join'
) }}


Maya's Dinky Little Website
On this page, you will find a list of my blog posts!
Problem Solving
Neuroplasticity and Growth Mindset
Javascript, HTML, CSS, DOM and DevTools
Emotional Intelligence
My Learning Plan
My Identity, Values and Strengths
ID vs Class


| 1: | <?php |
| 2: | declare(strict_types=1); |
| 3: | |
| 4: | /* |
| 5: | * This file is part of the Twipsi package. |
| 6: | * |
| 7: | * (c) Petrik Gábor<EMAIL_ADDRESS>|
| 8: | * |
| 9: | * For the full copyright and license information, please view the LICENSE |
| 10: | * file that was distributed with this source code. |
| 11: | */ |
| 12: | |
| 13: | namespace Twipsi\Components\File\Exceptions; |
| 14: | |
| 15: | use Exception; |
| 16: | |
| 17: | class DirectoryManagerException extends Exception |
| 18: | { |
| 19: | } |
| 20: |


As you will demonstrate in your lab this week, the following two graphs can be obtained from the photoelectric effect experiment. In these graphs, "I" represents the electric current.
In the current vs frequency graph, we see that the electric current only start once some threshold value of frequency is used.
The figure "Current vs Voltage" shows another strange aspect of the photoelectric effect. As you increase the intensity of the light, you get a bit more current but the stopping potential (and thus the kinetic energy of each electrons) does not seem to change.
Fig. "Current vs Frequency" shows that there is a threshold frequency
\f0 \ below which nothing happens. Fig. "Current vs Voltage" shows that, for positive potential, I can have a large current, and for any intensity of the light, the stopping potential\V{stop} \ remains unchanged.
The standard idea of physics that light is a wave that excites the electrons " to jump out of the swimming pool" explains nicely why the current (denoted I in the figures) is proportional to the intensity, but some of these experimental facts beg the following questions (which we will answer).
The answers to these questions, once figured out, changed the way we look at the world. In your lab this week, you will be asked to reproduce these graphs and to perform the photoelectric experiment. The demos below will demonstrate what the actual experiment looks like.
First let's look at what happens when we change the intensity.
Now, the strangest part is the frequency dependence.


Only I have control
Start the party
Please make sure to tell your guests that they need to click on the red NP icon to join a party after clicking on your party invite link.
Share the URL below so others can join the party. The recipient(s) should navigate to this URL and then click on the red Netflix Party icon to join.
Copy URL
Show chat
Disconnect
Dismiss


DIT Physics Society
Contacts
Experiments
Galley
About
Home
Name:
Email:
Class:
DT228
DT282
DT211
DT401
Subject:
Main Content:
Site By: Arthur Coll © 2016


What are the chances of you tossing a coin and getting heads?
Well, 50% is the obvious answer.
Different coins from different countries have different physical attributes; some of them differ in weight distribution, shape, size and overall aerodynamic capabilities. Those slight variations may affect the likelihood of you getting heads.
To get to the point in your life where you have to toss a coin, a lot of things must’ve happened. If we start taking in count the odds for every event in your life that lead you to that exact moment, the odds of you throwing a coin and getting heads一or cross一get very close to absolute zero.
The chances for the kinds of events discussed so far happening can be more or less estimated. But there are events for which we can’t, as humans, possibly estimate the chances of. For example, what are the odds of you being who you are? or, what are the odds of the universe we’re in right now being created in the first place? The idea of calculating the probability for these events is simply ridiculous. Perhaps part of the reason is that we don’t deeply understand what these events really imply, or perhaps not even Gods know why they’re alive. If that were to be the case, what makes you any different from a God?


Digital resources are software code, data and application programing interfaces (APIs).
The BCDevExchange lists B.C. public sector digital resources licensed under permissive licenses, with an initial focus on code and APIs.
If you want new ways to innovate and meet the needs of those you serve, then listing your digital resources makes sense. Why?
Currently, there are two ways to list your digital resources on the BCDevExchange.


i
Reporter
Browse
Records
Add a record
Dashboard
Profile
Settings
Sign Out
Add New Record
Record Type
Red Flag
Intervention
Short Title
Comment
Location
Upload media files
Status
Draft
Publish
Create record


Minister lauds bus marshal
‘One of them helped rescue a 4-year-old kidnap victim’
by Staff ReporterTransport Minister Kailash Gahlot on Thursday lauded bus marshal Arun Kumar as a “hero” for helping in rescuing the six-year-old girl who was abducted from Nizamuddin Railway Station.
The Minister said that bus marshals have been helping the public in different ways since their deployment.
Chief Minister Arvind Kejriwal said that Mr. Kumar and bus conductor Virendra will be honoured by the Delhi government. “This was precisely our motive behind appointing marshals in buses. In just three weeks, marshals have caught 10 pickpockets. Criminals are now afraid of the tightened security in the buses ,” he said.


There is so much for you to discover on the Fife Coastal Path. Stretching for 117 miles from the Firth of Forth in the south, to the Firth of Tay in the north, the route offers an unrivalled walking experience.
The route offers a range of walking experiences from easy and level, to wild and demanding. Whether completed in smaller sections or as a long distance route, there is definitely something for everyone.
From the cosmopolitan atmosphere of St.Andrews to the former coal mining towns of central Fife. The small fishing villages of the East Neuk to the bustling industrial areas of the west, rugged cliffs, award winning beaches, internationally important estuaries and wildlife reserves, walking the Fife Coastal Path is an experience not to be missed.
Whether you are looking for peace and tranquillity or action and adventure the Fife Coastal Path can offer you this and much, much more.
The Fife Coastal Path is one of Scotland's Great Trails and is part of Fife's Core Path network which helps to increase access to green space and establsih links between neighbouring communities.


| Class | Description |
|---|---|
| Base<A> |
Base class for CardList and CategoryList
|
| Card |
Card model for keeping information about question and answers
|
| CardList |
CardList model for keeping sorted state
|
| Category |
Category model for keeping name and cards
|
| CategoryList |
CategoryList model for keeping all Categories
|
| Selector |
Selector model for keeping data related to card's order
|
| SortBySelector |
Comparator class for sorting cards
|
| Enum | Description |
|---|---|
| Selector.AnswerType |
possible answers given by user
|
| Exception | Description |
|---|---|
| NameFormatException |
Exception thrown after bad user's input during category creation
|


Child 1
Child 2 - child 2
Child 3 - child 3
Child 4 - child 4
Child 5 - child 5
Child 6 - child 6
Child 7 - child 7


| Meet-up Id | Date | Title | Venue | |
|---|---|---|---|---|
| 1 | some data | other data | ye? | |
| 2 | moar data | oh | bleep | |
| 3 | evn mor dataz | yup! | boop | |
| 4 | final data | yeah! | brap |
+
Confirm
Confirm delete the meetup
| Meet-up Id | Date | Title | Venue | |
|---|---|---|---|---|
| 1 | some data | other data | ye? | |
| 2 | moar data | oh | bleep | |
| 3 | evn mor dataz | yup! | boop | |
| 4 | final data | yeah! | brap |
Confirm delete the meetup


Deep learning showreel!
This list is no-longer updated.
-
RigNet - Neural Rigging for Articulated Characters — May 1, 2020
This is a truly awesome result (be sure to check out the video) which can take in a 3D model, then compute a “rigging” so that it can be animated; i.e. walking, dancing, jumping, etc.
Super useful for animation and games, and just plain fun!
-
Investigating Transferability in Pretrained Language Models — April 30, 2020
-
Consistent Video Depth Estimation — April 30, 2020
This is an interesting one. The idea is that we want to predict a “consistent” depth over the frames of a video. If we naively treat each frame as an independent image, we get very bad consistency; i.e. if we’re moving the camera across a scene; the depth changes wildly.
In the paper they introduce a technique to solve this problem, which then allows for very cool applications! Check out the videos.
-
Editing in Style - Uncovering the Local Semantics of GANs — April 29, 2020
Generative adversarial networks (GANs) are hugely popular for generating fake images. But a key topic is fine-grained editing and adjusting. I.e. you can generate a random person, but can you generate a random smiling person? To what degree can we edit these visual features of people?
This paper presents a mechanism by using reference images and regions and transferring them onto the generated images. Neat! And useful.
-
MakeItTalk - Speaker-Aware Talking Head Animation — April 27, 2020
A simple dream realised. We take an audoclip, and a still image, and animate the image as if it’s speaking the audio. Check out the video.
Adobe is investing heavily in this kind of connection between audio and images; they also did some early work on “audio inpainting”. Expect some cool products from them in the future.
-
Graph2Plan - Learning Floorplan Generation from Layout Graphs — April 27, 2020
I have a soft-spot for AI-generated architecture; and this one is interesting because it gives the user some high-level control on what the generation does. I.e. you can control the number of rooms, how they connect, and roughly the layout.
This kind of thing, built well into modern CAD tools, would be really cool!
-
Quantum Gradient Algorithm for General Polynomials — April 23, 2020
The idea here is that, in principle, if you have a lot of parameters in your function, then the time to compute the entire gradient w.r.t. all the parameters will scale like the number of parameters. This is bad when you have billions of parameters; so mostly in optimisation we focus on stochastic gradient descent; i.e. just looking at a small number of parameters at any one time.
Here, the idea is that we could use quantum computers to do the full computation significantly faster. In this, and algorithm is introduced that in fact achieves this, for general polynomials (perhaps a step towards achieving it for full neural networks).
-
ViBE - A Tool for Measuring and Mitigating Bias in Image Datasets — April 16, 2020
This is an interesting tool that helps formalise how to think about bias in your datasets. It allows you to gain formalised insights (i.e. “you don’t have enough data from this country”) and then generate concrete actions. It’s early days, but tools like this will be very useful as the field matures.
-
Efficient State Read-out for Quantum Machine Learning Algorithms — April 14, 2020
-
3D Photography using Context-aware Layered Depth Inpainting — April 9, 2020
A nice technique to make a cool little animation from a 2D image. Check out the video here.
-
Typilus: Neural Type Hints — April 6, 2020
-
Learning Generative Models of Shape Handles — April 6, 2020
-
GANSpace - Discovering Interpretable GAN Controls — April 6, 2020
-
Generating Rationales in Visual Question Answering — April 4, 2020
-
Learning to See Through Obstructions — April 2, 2020
-
Sign Language Translation With Transformers — April 1, 2020
-
Design of Variational Autoencoder-based Rhythm Generator as a DAW plugin — April 1, 2020
I like this because it’s a kind of “applied” example of generative AI; here they build a generative music AI into Abelton Live. Check out the code here.
-
Deformable Style Transfer — March 24, 2020
-
Learning Object Permanence from Video — March 23, 2020
-
TensorFlow Quantum — March 6, 2020
-
Privacy-preserving Learning via Deep Net Pruning — March 4, 2020
This is interesting paper in that it shows how “differential privacy” can be related to network pruning. Differential privacy is the idea that we can hide individual datapoints by adding noise. This is useful if, say, working on medical data where we want to not reveal individual patients.
The trade-off is between how much worse does the network get as we increase the privacy (i.e. make it harder to recover individual datapoints). This paper links this idea with the idea of pruning neural networks in a precise way.
-
Learning to Transfer Texture from Clothing Images to 3D Humans — March 4, 2020
-
Inverse Graphics GAN - Learning to Generate 3D Shapes from Unstructured 2D Data — February 28, 2020
-
Sketch-to-Art - Synthesizing Stylized Art Images From Sketches — February 26, 2020
This is just a nice result. I really like the outputs that are generated. You can play around with this idea over here.
-
Wait, I'm Still Talking — February 22, 2020
-
Seeing the World in a Bag of Chips — January 14, 2020
-
Learning to Zoom-in via Learning to Zoom-out — January 8, 2020
-
Painting Many Pasts - Synthesizing Time Lapse Videos of Paintings — January 4, 2020
This is a cute one. The idea is simply to see if it’s’ possible to show the “painting progression” of a finished painting. I.e. what might be (photographs) of the steps of making this painting?
I think this is a really neat idea; would love to see some artists try and replicate the steps, to confirm that they (somewhat) match reality!
-
Generating Object Stamps — January 1, 2020
-
FaceShifter - Towards High Fidelity And Occlusion Aware Face Swapping — December 31, 2019
-
SketchTransfer - A Challenging New Task for Exploring Detail-Invariance and the Abstractions Learned by Deep Networks — December 25, 2019
This isn’t a network itself; it’s a dataset and a proposed task. The idea of this dataset is that there is definitely a similarity between sketches of real objects, and photos of those objects; but, neural networks aren’t great at knowing this abstraction, yet. I.e. If I have an object-classifier, it can’t very well classify sketches. We’ll see how people progress towards this problem via this dataset!
-
ConvPoseCNN - Dense Convolutional 6D Object Pose Estimation — December 16, 2019
-
Visual Interactive Comparison of Vector Embeddings — November 5, 2019
As we cover in the 6 week workshop, embeddings are the essence of deep learning. So any method to compare and understand them is going to be a big hit here.
As embeddings become more … embedded in all aspects of our AI piplines, tools like this will become increasingly important.
Furthermore, the idea of learning how to explore embedding spaces is also very valuable, and I think this is a useful step in that direction.
-
Satellite Pose Estimation Challenge — November 5, 2019
This one is neat because, at least to me, I didn’t even realise this could be a problem. But, it turns out that if you’re in the space business, you might have occasion to be interested in which way your satellite is facing, especially if it’s not responding to your commands any further.
In this work, they introduce a dataset, and competition metrics, and some baselines. Interesting problem!
-
Dancing to Music — November 5, 2019
This is an idea that I worked on a long time ago. The idea is simple: Can we generate a dancing animation in response to music? Indeed, it’s possible.
Here, the contribution is around aligning movements to beats, and other bits of necessary busywork to decouple different musical elements so they can be used by the network.
You can see some generated videos over on their homepage.
-
What Does A Network Layer Hear — November 4, 2019
-
Making an Invisibility Cloak — October 31, 2019
-
Where Humans Live - The World Settlement Footprint — October 28, 2019
-
Vision-Infused Deep Audio Inpainting — October 24, 2019
-
Quantifying the Carbon Emissions of Machine Learning — October 21, 2019
This is interesting. There’s no deep-learning here; it’s simply a tool, to compare and calculate how much carbon is emitted by various cloud providers and various GPUs. They also give advice on where else you might like to run your computation in order to save emissions.
Check out the website here.
-
Evading Real-Time Person Detectors by Adversarial T-shirt — October 18, 2019
There’s a lot of this kind of work going around at the moment. Building on a large body of “adversarial” attacks; the researchers demonstrate that it’s possible to design an image, that can be printed on a t-shirt, that fools person detectors.
A significant aspect of this work was to do with how the shirt moves as the body moves; i.e. the shirt should work in “real-time” (and it does!)
-
A Visual Analysis Tool to Explore Learned Representations in Transformers Models — October 11, 2019
This is a nice exploration in the space of UX of AI, and the ability to understand what drives particular decisions and outcomes in a model. These days, big text models (a “Transformer” is a certain kind of text model) can be quite hard to understand.
The idea in this paper is to present a UI that can help with this! Nice development. We can expect to see much more of this kind of thing over the years.
-
Improving sample diversity of a pre-trained, class-conditional GAN by changing its class embeddings — October 10, 2019
This is mostly a technical result, but it’s really neat for the art applications. One of the problems with a lot of generative networks is that they lack “diversity”. This means that most of the time, the kinds of pictures they generate are mostly the same. This work address this problem, and even more impressively, it addresses it without the need to train the model again!
Very cool.
-
Dialog on a Canvas with a Machine — October 10, 2019
-
A Generative Approach Towards Improved Robotic Detection of Marine Litter — October 10, 2019
This is another neat example of real-world AI. The point here is that working out what is trash or is otherwise a cool-looking sea animal or coral, is surprisingly hard.
One of the issues, as in many real-world situations, a lack of data.
But, by using some standard deep-learning approaches, namely by generating the images they need, they are able to get enough data to train a good model!
-
Adversarial Learning of Deepfakes in Accounting — October 9, 2019
This is a neat one because it’s taking a cute idea and adapting it to a (very exciting!) business process. Namely, the financial auditing of a business.
The point here is that, by being able to generate accounting records, we might be able to mislead auditors; or at least some computer-based auditing assessments. The idea would be, by using this kind of approach, one could construct misleading journal entries.
I think it’s really interesting to see this kind of adversarial work move out of the domain of images and into the finance world! I’m sure we’ll see more of these kind of general adversarial networks over coming years!
-
Prose for a Painting — October 8, 2019
-
Learn to explain efficiently via neural logic inductive learning — October 6, 2019
Along the lines of explainability, this is a fascinating and important step. Consider: How do you know that something is a car? What makes a person a person? This paper attempts to address this problem by a kind of “constructivist” approach.
I think this kind of logical reasoning will be increasingly important as models make richer decisions, and as we seek to get solid explanations from our models.
-
Addressing Failure Prediction by Learning Model Confidence — October 1, 2019
This is topic close to my heart. I’m very interested in thinking about how we interpret the predictions of ML models, and if a model can even give any kind of meaningful confidence prediction at all. This paper attempts to build this idea in. I’m sure it’s not the last word, but it’s a good step in a line of research that I think is very important.
-
Raiders of the Lost Art — September 10, 2019
This is a super neat, practical application that I love. The authors address a neat problem: suppose some canvas has some art has been painted over. Can we recover that painting? Of course, given that some information is lost, we can only go so far, but they neatly use Style Transfer to re-paint the lost painting in the style of the supposed artist. Really cool!
-
Gravity as a Reference for Estimating a Person’s Height from Video — September 5, 2019
I love this one for the awesome idea they’ve had. They want to solve a reasonable problem - how tall is the person in this photo (here, actually, a video). They’re observation is that if they ask the person to jump, then they can use information about gravity as supporting evidence to estimate the height! It’s such a neat idea.
-
Translating Visual Art into Music — September 3, 2019
This one is weird and I love it. The idea is to translate a painting, let’s say, into music, so that vision-impaired people can learn to enjoy paintings. This one is fascinating in that it tries to ensure that something like the original image can be reconstructed from the stream of music. They phrase art, then, as an information exchange. Crazy!
-
Enforcing Analytic Constraints in Neural-Networks Emulating Physical Systems — September 3, 2019
Simliar to the “MIPs as a Layer” paper, this one is again about enforcing constraints into neural networks, but here the view is that we want to do this so that it respects the physical constraints of physical systems. As we attempt to solve more Physics problems with deep learning, we’ll see much more of this. I think it’s exciting!
-
Story-oriented Image Selection and Placement — September 2, 2019
This one is a neat and interesting idea. The point is, consider a paragraph of text. What image should accompany that text? It turns out, you can solve this problem by learning what’s in images, and what the text is talking about. I think this is something we’ll probably see more of over the years; aligned content generation, i.e. “this goes with that”.
-
Visual Deprojection — September 1, 2019
This is a moderately quirky one. The idea is that we take some high-dimensional information (say, 3D) and then project it down to 2D. The question is, how well can we reconstruct the original input? Turns out, pretty well. This idea can be useful when thinking about how to compress high-dimensional data.
-
Real-world Conversational AI for Hotel Bookings — August 27, 2019
We don’t feature a lot of chatbots here, but I thought this one was interesting because of how real-world focused it is. If you check the paper you’ll see that they have an explicit consideration for when a human should take over a convseration. Furthermore, this is a real system deployed in the real world. Furthermore, they should how they’ve utilised some cutting-edge models (BERT). It’s good to see this kind of real-world design.
-
Physics Informed Data Driven model for Flood Prediction — August 23, 2019
-
Federated Learning — August 21, 2019
This one is interesting from a real-world/privacy angle. We know that we’re going to see more and more deep learning on phones. And we’re going to have our phones start to adapt to us. But we’d also like to know how to leverage data from other peoples activities, but in a private way. How can we train things in this regime? How should distributed training even work? This paper presents some current research, challenges, and ideas for the future.
-
A Low-Cost, Open-Source Robotic Racecar for Education and Research — August 21, 2019
This is a neat one for those wishing for more car-based deep learning projects. I myself have something similar to this, but with nowhere near the bells and whistles that this one has. This had LiDAR, RGBD camera, and even a collison-indicator! All up, a super cool project, that’s totally open-source!
-
Towards Arbitrary High Fidelity Face Manipulation — August 20, 2019
Every so often I stumble across a paper where, when they show the results, I don’t quite believe them. This is one of those papers. The manipulated photos in this work look so realistic to me that I’m still amazed! Very cool work. They are able to take in single-images, and then richly manipulate them to desired expressions!
-
Deep Sketch-based 3D Hair Modeling — August 20, 2019
-
Video synthesis of human upper body with realistic face — August 19, 2019
We’re seeing a lot of work like this with the “#DeepFake” meme. The point here is that they’re completely generating (somewhat) arbitrary poses of people sitting at desks, talking. I.e. with generate hand-movements, body movements, head movements, and mouth movements. This work is just yet another that makes a significant contribution to this meme. Expect these fake videos to become better and better, and harder to detect.
-
Learning to Dress 3D People from Images — August 19, 2019
-
3D Object Instance Re-Localization — August 16, 2019
This is an odd one but probably important to someone. Suppose that you can compute a 3D object instance segmentation. I.e. you can locate where an object is in 3D. Then, given a different view of the scene, can you find the objects again? This is important, probably, because succeeding at the instance segmentation at arbitrary views of the scene is harder, you might think, then if you use your prior knowledge about the objects positions, having seen them before.
For me this is an interesting work related to the general idea of “temporal coherence”; i.e. using knowledge that we know from a previous timestep at a new timestep.
-
Differentiable Reasoning — August 13, 2019
I really like the ideas of this one. There’s a bit of work going around this idea: contextual knowledge should help us. Here, the formalise this idea that we can do better at classification if we know other things about what we’re trying to classify. In the photo the example is that we can do better a deciding if something is a cushion if we know that it’s at the very least part of a chair.
-
Image Inpainting via Structure-aware Appearance Flow — August 11, 2019
Inpainting is a classic task in computer vision: Given some empty area of an otherwise complete image, can you figure out what should be there? This work is interesting because they realise that “structure” is important when thinking about solving this problem. In other words, you can say things like “This part, and this part should be the same”. It turns out that if they build a network with this consideration baked in, then they can do really well at this problem!
-
Visual Search at Pinterest — August 5, 2019
-
MaskGAN - Diverse and Interactive Facial Image Manipulation — July 27, 2019
-
On the “steerability” of generative adversarial networks — July 16, 2019
This is a cool paper. We’ve seen lots of generative work from “Generative Adversarial Networks (GANs)”. In this work, they explore how “controllable” such networks are. I.e., can we generate a picture of a dog, and then zoom in on it’s face? Can we generate a building and change it from night to day? They perform some investigations in this area, and show that there is lots to be done, but solving these kinds of problems will become very important as we see these generative networks used more widely.
-
Autonomous Driving in the Lung — July 16, 2019
-
Mixed Integer Program as a Layer — July 12, 2019
MIPs are close to my heart; and I really enjoy papers that combine many techniques together. This one is interesting because, again, it’s this idea of combining constraints into neural networks, and in particular bringing this information into the optimization of the overall network.
I’m not sure this idea has reached peak popularity yet, and it’s great to see more things being squeezed into the general capability of these deep networks.
-
Learning to Self-Correct from Demonstrations — July 12, 2019
This one is a bit technical, but the main idea here is that they are able to “moderate” how reinforcement-learning networks will extrapolate, when they are learning by example. An analogy would be that, when you watch someone take a sip from a cup, you assume “brilliant, I can drink from any thing that I am holding”, and then you try and drink from a pen, or a book, or such. Here, they introduce the idea that perhaps you should act a bit conservatively in areas where you are unsure, such as holding new things.
-
Hello, It's GPT-2 - How Can I Help You — July 12, 2019
This is an interesting one. They use the now-famous GPT-2 network to help them understand queries from users; they then build a sense of “belief” about what the user wants (in the image you can see the system learning they want a “hotel” that it “expensive” in the “center of town”. Then, from that belief, they generate a text response. This is our usual kind of favourite thing: the combination of many techniques to produce a nice result.
-
Eliminating Forced Work via Satellites — July 12, 2019
This is an amazing application. The researchers train a fairly standard detection network, “resnet”, and train it to detect certain objects in satellite imagery. Here, though, what they are detecting are “brick kilns”; places where there may be forced labour. By helping identify these locations, they can then be referred to the authorities!
This is a beautiful application of deep learning, and the authors note that they are also addressing one of the UNs sustainable development goals!
-
Generative Choreography — July 11, 2019
-
Synthetic fruit — July 10, 2019
This is an old idea, and just one example among many. There’s nothing inherently outstanding in this paper, but we just wanted to note the very useful technique of using “fake” (synthetic) data to help solve real-world problems. This is a very useful technique, especially in light of the remarkable abilities of transfer learning to help us adapt to new data.
-
Out-of-Distribution Detection using Generative Models — July 10, 2019
In an old blogpost we discussed the problem of networks making over-confident predictions. This paper focused on over-confidence on images that the network has never seen (i.e. trained on cats and dogs, then very confident that a picture of a boat is a dog).
A classical idea (we saw it in the “Detecting the Unexpected” paper) is that if we think about how well we can reconstruct a given image, that might tell us something about how often our network has seen it; i.e. if it’s “in-dstribution” or not.
This paper notes that one problem with that idea is that if the thing we’re looking at is “simple” (technically, has “small variance”), then because the generative models are powerful, they might still do a good job.
The approach they provide in the paper is to use a different kind of generative network, the so-called “Neural Rendering Model (NRM)”, to do the image generation, and that this new technique just happens to be better at being informative when the data is from a set the network has never seen.
The picture above shows that the NRM-approach does quite a good job of seperating between images the network has seen and hasn’t seen.
This is a bit of a technical result, but it’s a crucially important area of research for networks that are going to be used in the real world.
-
Learning to understand videos for answering questions — July 10, 2019
Videos are becoming increasingly prolific on the internet. Naturally, then, it makes sense that researchers are spending time trying to understand them. One particular area of research is so-called “Visual queastion-answering”. The point is to train a network to be able to watch a video, then answer questions (via text) about what happened in the video. Some examples are provided in the image above.
This work introduces a nice idea to this area, one that we’re seeing frequently on the showreel, namely: building up a rich representation first, and then using that representation to further refine answers. This should be a bit similar, conceptually, to the “Scene Graph” work, for example.
It’s also neat that the researchers are from Deakin!
-
What-If ... We could interactively understand ML Models? — July 9, 2019
-
Machine Learning for Side Channel Attacks — July 9, 2019
This is a quirky one, but it’s kind of “flag-planting” in the ML/Security world. For years, security researchers have spent time finding what they call “side-channel” attacks. An example is, say, listening to the soup that someone makes when typing, and from that sound, working out what they are typing. It’s called “side-channel” because it’s not, say, capturing the keystrokes via the computer, it’s via an additional “channel”.
The main point of this paper is that they’re applying standard ML techniques, in particular in regards to voltage, and are able to make an estimate of which applications are running on a given piece of hardware. This might not sound super useful as it is, but, as always in the security world, there’s much more juice to be squeezed here.
This will definitely be a space to watch in the security space - bringing in AI techniques to enhance our offensive security capabilities!
-
Designing User Interfaces that Allow Everyone to Contribute to AI Safety — July 9, 2019
Improving the situation around AI Ethics is strongly on our agenda at the Braneshop. This paper highlights an interesting situation: suppose you have people who want to provide feedback to some decision making process; what should the interface they use look like?
Here they explore a potential design that allows people to see the impact of their actions in a variety of ways.
This won’t be the last word on the matter, but it’s a nice contribution to the field, and hopefully pushes people to think very hard about this problem.
This is one bit of work in a growing field we refer to as “The UX of AI”. This will definitely be a huge area over the coming years.
-
Linking Art through Human Poses — July 8, 2019
This one is cool for the kind of neat technique it demonstrates. They use a pose network (something that just looks at an image of a person, say, and estimates what their skeleton looks like; i.e. it tries to guess some straight lines that connect their arms and legs and such) to connect different artworks. It’s a neat application of what is becoming a standard technique.
-
Estimating travel time without roads — July 8, 2019
Again, a neat idea applied well. In this paper they suppose that, in fact, we don’t need detailed road networks to do reasonably well at estimating travel time. We just need to get a vague feeling for the kinds of areas we’ll be travelling though (i.e. highway, commercial, residential, country, park, urban, etc). They make these ideas precise and get some great results!
-
Action Recognition from Poses — July 8, 2019
A pretty standard, but useful, technique that uses a kind of multi-stage process to: 1) compute the pose, 2) then from the a series of these poses, ver time, work out what “action” people are performing. Specifically here they focus on people going past train ticket machines in various ways, but the application is general.
-
Albatrosses from Space — July 3, 2019
A really nice scientific application of deep learning; and something that maybe any reasonable person would not assume is possible right now. We like this one because it’s the overlap of modern deep learning techniques to old (but important!) problems of tracking animal movements for conservation reasons.
-
AI for Economic Uplift of Handicraft — May 31, 2019
While this one isn’t strictly using deep learning, it does use some classical machine learning techniques. But the reason we consider it particularly cool, is because the authors actually took their system “to the streets”, as it were, and verified that using the new design processes helped the artisans sell more items!
-
Attacking person-identification with patches — April 18, 2019
The game in this one is - can we make a picture, that can be printed and held in front of us, that will fool a person-detector? Yes, it turns out.
This is refered to as an “adversarial” attack, and they have gained a lot of attention recently. This one in particular is interesting because they attack a standard person-detector (so-called “Yolo”) and the image they use is “local” and “printable”. There had been a few results in this area, but nothing attacking person detectors.
In the research world, we’re seeing work on both fronts. There are a lot of work on how to do more of these, and make them more robust, and likewise there is a lot of work on how to make classifiers and detectors less vulnerable to such attacks. Who will win? It’s not clear. I’d put my money on it always being possible to make such attacks, given enough information on the classifier. But, the cost of such attacks will rise significantly, making it unfeasible for most of us.
-
Detecting the Unexpected — April 16, 2019
This is a really neat and important idea. The application here is in self-driving cars, but the central idea is very general. The main point is, if we’ve trained a network to detect certain classes of thing (“car”, “road”, “person”, “truck”) then, if it sees something completely unexpected, (“goose”), what will it predict? Depending on how you set up the network, it will predict one of the known classes. This work is about quantifying how confident the network should feel about such prediction. Their idea is to ask the network to think about how well it can reconstrut the thing it thought it saw. If it finds it hard, then that indicates that the thing it saw is moderately unknown to it, and so it shouldn’t be confident. As we have more AI out in real life making decisions, quantifying uncertainty will become increasingly important.
-
Expressive 3D Body Capture from a Single Image — April 11, 2019
More and more we’re seeing deep learning tackle rich reconstruction problems from simple inputs. This is a classic of the genre. As humans, we can easily imagine the 3D structure of the person in the photo; and it turns out now deep learning can do the same, via the techniques in this paper. It’s very impressive work, and is applicable for those people wishing to capture this information without a complicated set up of a 3D body scanner. As usual, the typical applications will be in retail, but maybe also augmented-reality and other such fun things. As is the case with all these body-pose-related papers, they use an underlying pose network and build on top of it’s outputs. This is also a central and important topic in modern AI: building up rich and strong capabilities by combining different techniques.
-
Extreme Image Compression — April 8, 2019
A natural thought would be that if we know a lot about the thing we’re trying to compress, we can do a better job. Standard compression algorithms are general-purpose, and as such, there is probably room to improve. This is the observation and work in this paper: They learn a compression function for a specific set of data, and they do really well! Probably not suitable for most of us, but you can be sure the big data storage providers will be working on these kinds of techniques into the future.
If we wanted to be trendy we could summarise this as “big data makes small data”.
-
Can a Robot Become a Movie Director? — April 5, 2019
The main point here is that if we’re interested in determining where to point a drone while filming some scene, it might be hard, because the director would need to be able to somehow see everything, while the drone is flying. This paper proposes that perhaps thee could be a method to have the drone know where to look.
-
Image2StyleGan - aka Ryan Obama aka Oprah Johansson — April 5, 2019
One of the most exciting areas of AI is the generative/creative opportunities. And in this area, something people are always fascinated by is the exploring the “space” of images; i.e here are all the photos of people, but what does a person who is “halfway between these two people” look like? This paper works on that problem, and produces some very cool looking people such as Ryan Obama, Oprah Johansson and Hugh de Niro. Notably, in this paper it seems like it doesn’t work so well for abstract/non-person style photos; but that’s probably due to the data, and not a general problem.
-
Learning how music and images relate — March 30, 2019
This result is nice because it’s using a concept that we think is so important, we’ve made it a central part of our technical workshop: the autoencoder.
In this work they map images and music into the same “space” (i.e. points on the graph in the picture), and in-so-doing, they can learn when images and music are related! Nice, simple, and useful!
-
Detecting people using only WiFi — March 30, 2019
This is an interesting one. WiFi is everywhere; and probably a reasonable person wouldn’t assume they could be tracked (down to estimates of where they are walking, and the overall pose of their body) if there isn’t a camera around. But it turns out that this data actually can be gathered in (an ideal) WiFi set up. That is, the pose of people was determined without a camera; using only WiFi signals. No doubt this field - sensing human activity through non-camera based sensors - will continue to grow.
-
Face Synthesis from a Single Image — March 26, 2019
Ignoring the specific contributions, this is a conceptually simple paper; but the results look amazing. The idea is: can we find a 3D model from a single image? And how much detail can it capture?
Turns out, heaps of detail! They introduce some nice techniques for modelling the facial features and such, but the main thing I like are the results.
-
Unconstrained Ear Recognition — March 11, 2019
Trust no-one.  It turns out it’s possible to identify people from their ears. Why would anyone want to do this? Who knows. But it’s happening!
-
Finding small objects in a large scene — February 6, 2019
Satellite imagery is a hot topic. There’s been many stories of people using such imagery to gain competitive advantage in many ways; from estimating the number of sales at department stores, to prediction crop yield.
This paper in particular is very neat because they discuss a network that allows them to compute fine-grained information — colour, position, and angle of cars — in very large satellite photos.
This is really an impressive result.
-
What Is It Like Down There — June 13, 2018
This is already a classic of the generative genre. They take a satellite photo, and then use GANs to work out what that particular region woud look like if viewed from the ground.
It’s amusing to me because it’s moderately well-posed; i.e. there is definitely the data present to make some kind of guess, but getting to the ground truth is kind of “obviously” impossible.
Even under such contraints, they do pretty well! And, as we most of this generative work, this is something that will only get better.
-
Image Generation from Scene Graphs — April 4, 2018
Work from the famous Fei Fei Li, this is a very neat idea. There’s been some famous networks (“StackGAN”) that are able to generate pictures from text. But, they fail when you want to generate a complicated and unfamiliar scene. Humans, of course, can “dis-entangle” different concepts when thinking of complicated scenes, such as “a cat waiting to catch the train”. Even if we haven’t seen this exact thing before, we can easily imagine it, because we know how the things look, independently. The contribution in this work is the same idea, for neural networks, and they achieve awesome results! We can definitely expect significant improvements in this area, over the coming years.
-
Women also Snowboard — March 26, 2018
This is a famous and interesting paper. They identify a common problem in so-called “captioning” networks: namely, they can be right for the wrong reasons. In the photo, we see that a network guesed it was a man sitting at a computer; but it only spent time “looking” at the computer to work this out. In other words, a computer was strongly correlated with the photo being of “a man at the computer” in the training data. In this paper they introduce some techniques to deal with this problem. Basically, their idea is that we can penalise the network for thinking about gender when no gender information is present, and reward it for thinking about gender when it is apparent. Furthermore, their approach is generally useful for other models and situations.
We can expect more technical results in this area to be implemented alongside the social techniques (i.e. having more diverse people involved in the building of AI systems).
-
Trying clothes on, virtually — November 22, 2017
This is a great example of attempting to apply AI in the real world. The problem here is the typical online-shopping problem: Here’s a thing that maybe I want to buy; but how would it look on me? This paper attempts to solve that problem by using pose information. It does a pretty good job for photos that are “simple” (i.e. model on a white wall), and does a reasonable, but not great, job on what is referred to as photos “in the wild” — just photos from everyday life; inside or outside. Over the years we can expect to see this kind of technology hit on-line retailers.
-
Priming Neural Networks — November 16, 2017
This is a fun one. First, try and find “something” in the photo (it’s normal-sized; and you’ll know it when you see it).
…
Did you find anything?
Now, try searching for: a cat (highlight this section of text to see it). Can you find it now that I’ve told you what to look for? Even if you can’t, it turns out that neural networks can. I think this is a really neat idea - priming a network to help it know what it’s trying to do.
-
Style Transfer in Come Swim — January 19, 2017
This is a landmark paper for a few reasons. First of all, it’s co-authored by a movie star; secondly it’s an application of the famous “style transfer” algorithm to a short film, and importantly that put a significant amount of work into making sure that the sylistic quality of the style transfer is high; which you don’t typically see. It’s a really interesting collaboration between the researchers and the film industry. I’m sure we’ll see a lot more like this over the years!
-
Understanding and Predicting Visual Humour — December 14, 2015
Easily Noon’s favourite paper of 2015. In life we face many problems. One of them is, given some non-funny situation, how can we make it funny? Naively one might think computers can’t begin to attemp to solve this problem. One would be wrong. Consider the top row of this image. Two people having dinner. Very unfunny. Two dogs having dinner at a dinner table? Hilarious. Likewise, cats in a park? Unfunny. A racoon riding a scooter in the same park? Brilliant.
This network was trained on data generated by humans who took specific scenes and adjusted them to make them funny.
We’re not totally sure where we’ll see more applications of this work, but we love it.
You can find a bunch of other cool papers, that I never got the chance to write up, over here.


Mandor Mountains [ap21], mountain, in Mandoria, wilderness
Last updated Turn #138
Mandor Mountains [ap21], mountain, in Mandoria, wilderness
------------------------------------------------------------------------
27: Dr_Banzai [r9z], refugee, with one peasant, arrived from the west.
29: Dr_Banzai [r9z], refugee, with one peasant, went east.
Routes leaving Mandor Mountains:
North, mountain, to Mandor Mountains [ao21], 10 days
Garrison [dd0w], garrison, uncontrolled, with ten undead
East, mountain, to Mandor Mountains [ap22], 10 days
Garrison [ap7q], garrison, uncontrolled, with four peasants
South, forest, to Trollwood [aq21], 8 days
West, forest, to Trollwood [ap20], 8 days
Inner locations:
Lair [ad7n], lair, 1 day
Seen here:
Garrison [ag6y], garrison, uncontrolled, with ten peasants
Dr_Banzai [r9z], refugee, with one peasant


All Files
(90.3%
covered at
5.13
hits/line)
15 files in total.
134 relevant lines.
121 lines covered and
13 lines missed
Controllers
(88.07%
covered at
6.06
hits/line)
5 files in total.
109 relevant lines.
96 lines covered and
13 lines missed
Models
(100.0%
covered at
1.16
hits/line)
4 files in total.
19 relevant lines.
19 lines covered and
0 lines missed
Mailers
(100.0%
covered at
0.0
hits/line)
0 files in total.
0.0 relevant lines.
0.0 lines covered and
0.0 lines missed
| File |
% covered |
Lines |
Relevant Lines |
Lines covered |
Lines missed |
Avg. Hits / Line |
Helpers
(100.0%
covered at
1.0
hits/line)
6 files in total.
6 relevant lines.
6 lines covered and
0 lines missed
Libraries
(100.0%
covered at
0.0
hits/line)
0 files in total.
0.0 relevant lines.
0.0 lines covered and
0.0 lines missed
| File |
% covered |
Lines |
Relevant Lines |
Lines covered |
Lines missed |
Avg. Hits / Line |
-
1
class ApplicationController < ActionController::Base
-
# Prevent CSRF attacks by raising an exception.
-
# For APIs, you may want to use :null_session instead.
-
1
protect_from_forgery with: :exception
-
-
# designate method current_user available also in views
-
1
helper_method :current_user
-
-
1
def current_user
-
210
return nil if session[:user_id].nil?
-
195
User.find(session[:user_id])
-
end
-
-
1
def ensure_that_signed_in
-
20
redirect_to signin_path, notice:'you should be signed in' if current_user.nil?
-
end
-
-
1
def ensure_that_admin
-
6
redirect_to signin_path, notice:'you should be an admin to do this' if not current_user.admin?
-
end
-
end
-
1
class RecipesController < ApplicationController
-
1
before_action :set_recipe, only: [:show, :edit, :update, :destroy]
-
1
before_action :ensure_that_signed_in, except: [:index, :show]
-
1
before_action :ensure_that_admin, only: [:destroy, :edit, :update]
-
# GET /recipes
-
# GET /recipes.json
-
1
def index
-
3
@recipes = Recipe.all
-
end
-
-
# GET /recipes/1
-
# GET /recipes/1.json
-
1
def show
-
end
-
-
# GET /recipes/new
-
1
def new
-
5
@recipe = Recipe.new
-
end
-
-
# GET /recipes/1/edit
-
1
def edit
-
end
-
-
# POST /recipes
-
# POST /recipes.json
-
1
def create
-
5
@recipe = Recipe.new(recipe_params)
-
5
@recipe.user = current_user
-
5
respond_to do |format|
-
5
if @recipe.save
-
4
<EMAIL_ADDRESS>params[:ingredients])
-
format.html { redirect_to @recipe, notice: 'Recipe was successfully created.' }
-
format.json { render :show, status: :created, location: @recipe }
-
else
-
2
format.html { render :new }
-
1
format.json { render json: @recipe.errors, status: :unprocessable_entity }
-
end
-
end
-
end
-
-
# PATCH/PUT /recipes/1
-
# PATCH/PUT /recipes/1.json
-
1
def update
-
2
respond_to do |format|
-
2
if @recipe.update(recipe_params)
-
2
format.html { redirect_to @recipe, notice: 'Recipe was successfully updated.' }
-
1
format.json { render :show, status: :ok, location: @recipe }
-
else
-
2
format.html { render :edit }
-
1
format.json { render json: @recipe.errors, status: :unprocessable_entity }
-
end
-
end
-
end
-
-
# DELETE /recipes/1
-
# DELETE /recipes/1.json
-
1
def destroy
-
1
@recipe.destroy
-
1
respond_to do |format|
-
2
format.html { redirect_to recipes_url, notice: 'Recipe was successfully destroyed.' }
-
1
format.json { head :no_content }
-
end
-
end
-
-
1
private
-
# Use callbacks to share common setup or constraints between actions.
-
1
def set_recipe
-
8
@recipe = Recipe.find(params[:id])
-
end
-
-
# Never trust parameters from the scary internet, only allow the white list through.
-
1
def recipe_params
-
7
params.require(:recipe).permit(:description, :name, :user)
-
end
-
end
-
1
class SessionsController < ApplicationController
-
1
def new
-
end
-
-
1
def create
-
15
user = User.find_by username: params[:username]
-
15
if user && user.authenticate(params[:password])
-
14
session[:user_id] = user.id
-
14
redirect_to user_path(user), notice: "Welcome back!"
-
else
-
1
redirect_to :back, notice: "Username and/or password mismatch"
-
end
-
end
-
-
1
def destroy
-
# nullifies session
-
1
session[:user_id] = nil
-
# redirecting to home page
-
1
redirect_to :root
-
end
-
-
# omniauth for Github
-
1
def create_oauth
-
if env["omniauth.auth"].provider == "facebook" then
-
nick = env["omniauth.auth"].info.name
-
else
-
nick = env["omniauth.auth"].info.nickname
-
end
-
if ((User.find_by username:nick).nil?) then
-
pass = ((0...8).map { (65 + rand(26)).chr }.join) + 123.to_s
-
user = User.create(username:nick, password:pass, password_confirmation:pass)
-
session[:user_id] = user.id
-
redirect_to user_path(user), notice: "Thanks for logging in with #{env["omniauth.auth"].provider}"
-
else
-
user = (User.find_by username:nick)
-
session[:user_id] = user.id
-
redirect_to user_path(user), notice: "Welcome back!"
-
end
-
end
-
-
end
-
1
class UsersController < ApplicationController
-
1
before_action :set_user, only: [:show, :edit, :update, :destroy]
-
1
before_action :ensure_that_signed_in, except: [:index, :show, :new, :create]
-
1
before_action :ensure_that_admin, only: [:destroy]
-
-
# GET /users
-
# GET /users.json
-
1
def index
-
3
@users = User.all
-
end
-
-
# GET /users/1
-
# GET /users/1.json
-
1
def show
-
end
-
-
# GET /users/new
-
1
def new
-
2
@user = User.new
-
end
-
-
# GET /users/1/edit
-
1
def edit
-
end
-
-
# POST /users
-
# POST /users.json
-
1
def create
-
2
@user = User.new(user_params)
-
-
2
respond_to do |format|
-
2
if @user.save
-
1
session[:user_id] = @user.id
-
2
format.html { redirect_to @user, notice: 'User was successfully created.' }
-
1
format.json { render :show, status: :created, location: @user }
-
-
-
else
-
2
format.html { render :new }
-
1
format.json { render json: @user.errors, status: :unprocessable_entity }
-
end
-
end
-
end
-
-
# PATCH/PUT /users/1
-
# PATCH/PUT /users/1.json
-
1
def update
-
2
respond_to do |format|
-
2
if @user.update(user_params)
-
2
format.html { redirect_to @user, notice: 'User was successfully updated.' }
-
1
format.json { render :show, status: :ok, location: @user }
-
else
-
2
format.html { render :edit }
-
1
format.json { render json: @user.errors, status: :unprocessable_entity }
-
end
-
end
-
end
-
-
# DELETE /users/1
-
# DELETE /users/1.json
-
1
def destroy
-
1
@user.destroy
-
1
respond_to do |format|
-
2
format.html { redirect_to users_url, notice: 'User was successfully destroyed.' }
-
1
format.json { head :no_content }
-
end
-
end
-
-
1
private
-
# Use callbacks to share common setup or constraints between actions.
-
1
def set_user
-
23
@user = User.find(params[:id])
-
end
-
-
# Never trust parameters from the scary internet, only allow the white list through.
-
1
def user_params
-
4
params.require(:user).permit(:username, :password, :password_confirmation)
-
end
-
end
-
1
class WelcomeController < ApplicationController
-
1
def index
-
1
render 'layouts/index'
-
end
-
end
-
1
module ApplicationHelper
-
end
-
1
module IngredientsHelper
-
end
-
1
module RecipeIngredientsHelper
-
end
-
1
module RecipesHelper
-
end
-
1
module WelcomeHelper
-
end
-
1
class Ingredient < ActiveRecord::Base
-
1
has_many :recipe_ingredients, dependent: :destroy
-
1
has_many :recipes, through: :recipe_ingredients
-
-
1
validates :name, presence: true
-
end
-
1
class Recipe < ActiveRecord::Base
-
1
has_many :recipe_ingredients, dependent: :destroy
-
1
has_many :ingredients, through: :recipe_ingredients
-
1
belongs_to :user
-
-
1
validates :name, presence: true
-
1
validates :user, presence: true
-
end
-
1
class RecipeIngredient < ActiveRecord::Base
-
1
belongs_to :ingredient
-
1
belongs_to :recipe
-
-
1
def self.massCreate(recipe_id, ingredients)
-
4
ingredients.each{|x| RecipeIngredient.create(recipe_id:recipe_id, ingredient_id:x)}
-
end
-
-
end
-
1
class User < ActiveRecord::Base
-
1
has_secure_password
-
1
has_many :recipes
-
-
1
validates :username,
-
uniqueness: true,
-
length: { in: 4..20 }
-
end


WITNESS LIST
Education
August 11, 2017 9:00 AM
FOR:
Armbrust, John Executive Director / Board Member (TCSA) (also providing written
testimony) (Austin Achieve and Texas Charter School Association.), Austin, TX
Colbert, Paul Consultant (also providing written testimony) (Self), Houston, TX
Grusendorf, Bill Executive Director (Tx. Assoc. of Rural Schools), San Saba, TX
Palmer, Ann Professor (Self), Austin, TX
Rome, Christy Executive Director (Texas School Coalition), Austin, TX
Zimmerman, Kathleen Executive Director/Board Member (NYOS Charter School/TX
Charter School Assoc), Austin, TX
AGAINST:
Bassett, Steve CFO (Fort Bend ISD), Missouri City, TX
Malfaro, Louis President (also providing written testimony) (Texas American Fed of
Teachers), Austin, TX
Marsel, Alice (Self; Texas ALTA), Austin, TX
Villanueva, Chandra Senior Policy Analyst (Center for Public Policy Priorities), Austin,
TX
ON:
Aleman, Steven Policy Analyst (Disability Texas), Austin, TX
Aleman, Steven Policy Specialist (Disability Rights Texas), Austin, TX
Banks, Yannis (Texas NAACP), Austin, TX
Chavez, Jesus H. CO - Executive Director (South Tx Association of Schools), Round Rock,
TX
Cowan, Julie School Bd Trustee (Self, Austin ISD), Austin, TX
Cowan, Julie School Bd Trustee (also providing written testimony) (Self; Austin ISD),
Austin, TX
Guzman, Samuel Director of Operations (Mexican American School Board), Austin, TX
Guzman, Samuel Director of Operations (Mexican American School Board Association),
Austin, TX
Hassett, Kristi Trustee (Lewisville ISD), Flower Mound, TX
Henricksen, Aaron Analyst (LBB), Austin, TX
McGeady, John Asst. Director (Legislative Budget Board), Austin, TX
McNeil, Dr. Jesse Jai President-McNeil Educational Foundation (Texas Latino Education
Coalition & McNeil Educational Foundation), Cypress, TX
McNeil, Jesse Taj President - McNeil Educational Foundation (Texas Latino Education
Coalition & McNeil Educational Foundation), Cypress, TX
Moreno, Celina Attorney (MALDEF), San Antonio, TX
Romero, Jesse (Texas Association for Bilingual Education (TABE)), San Antonio, TX
Vierra, Chris Trustee, Spring Branch ISD (Self, Spring Branch ISD), Houston, TX
Vierra, Chris Trustee, Spring Branch ISD (Self; SBISD school board), Houston, TX
Wilson, Columba P (also providing written testimony) (Self), San Antonio, TX
Registering, but not testifying:
FOR:
Arnold, Ellen (Texas PTA), Austin, TX
WITNESS LIST
Education
August 11, 2017 9:00 AM
Arnold, Ellen (Goodwill Central TX Excel Ctr.), Austin, TX
Cisarik, Kathleen Education Major at Baylor University (N/A), Houston, TX
Cisarik, LTD, CALT, Marian Chair: East Texas ALTA (Houston Branch International
Dyslexia Association-Advisory Role), Houston, TX
Freeman, Ray Executive Director (Equity Center), Austin, TX
Garcia, Veronica Vice President of Government & Public Affairs (Texas Charter School
Association), Austin, TX
Gladden, Linda Chair; Texas ALTA (Texas Chapter; Academic Language Therapy
Association), Austin, TX
Gomez, Addie Exec Director (Texans For Quality Public Charter Schools), Austin, TX
Hebert, Bryan (School Taxpayers Relief Coalition), Austin, TX
Hoffman, Courntey (Academic Language Therapy Association (ALTA)), Austin, TX
List, Amanda (The Texas League of Community Charter Schools), Austin, TX
Waggoner, Pam (IMCAT), Austin, TX
Waggoner, Pam Leander ISD Bd President (Self), Austin, TX
Waggoner, Pamela (TREA), Austin, TX
York, Dwan Supt. of Wimberley ISD (Texas Association of Mid Size Schools),
Wimberley, TX
AGAINST:
Beneski, Amy Deputy Executive Director (Texas Association of School Administrators),
Austin, TX
Grey, John Government Relations Specialist (Texas State Teachers Association), Austin,
TX
Longoria, Ruben Assistant Director Governmental Relations (Texas Association of School
Boards), Austin, TX
Mott, Vernagene Pflugerville ISD Board President (PISD District, 25000 students; TASB
Director; 5m+ public student children of Texas), Pflugerville, TX
Salas, Jennifer School Board Vice President (Self; Eanes ISD), Austin, TX
Teich, Ann Trustee-Austin ISD (Self), Austin, TX
ON:
Cahn, Adam Blogger (Cahnman's Musings), Austin, TX
Haenisch, Barry Executive Director (Texas Association of Community Schools), Austin,
TX
Tassin, Kristin Board President, Fort Bend ISD (Self; Fort Bend ISD), Missouri City, TX
Terry, Mark Deputy Executive Director (Texas Elementary Principals & Supervisors
Association), Austin, TX
Providing written testimony:
FOR:
Lara, Severita Community Advocate (Self), San Antonio, TX
Ybarra, Velma Community Rep. (Texas Latino Ed Coalition), San Antonio, TX
ON:
Anderson, David D. Consultant (Arlington ISD Board of Trustees), Austin, TX
Camacho, Priscilla VP of Education/Workforce Development (San Antonio Chamber of
Commerce), San Antonio, TX
WITNESS LIST
Education
August 11, 2017 9:00 AM
Chambers, HD Superintendent (Self; Alief ISD, Texas School Alliance), Houston, TX
Love, Jarod (Lovejoy ISD), Austin, TX


Things to do in Astoria NY
Filter types of locations:
Submit
List View
Live Intown
Live More. Commute Less.
Learn more


| Total net profit | -74.95 | Gross profit | 16.06 | Gross loss | -91.01 |
| Profit factor | 0.18 | Expected payoff | -0.79 | ||
| Absolute drawdown | -74.95 | Maximal drawdown (%) | 73.16 (-4087.15%) | ||
| Total trades | 95 | Profit trades (% of total) | 21 (22.11%) | Loss trades (% of total) | 74 (77.89%) |
| Long positions (won %) | 60 (18.33%) | Short positions (won %) | 35 (28.57%) | ||
| Largest | profit trade | 2.21 | loss trade | -3.61 | |
| Average | profit trade | 0.76 | loss trade | -1.23 | |
| Minimum | profit trade | 0.05 | loss trade | -0.04 | |
| Maximum | take profit in pips | 268.2 | stop loss in pips | -153.6 | |
| Average | take profit in pips | 21.4 | stop loss in pips | -47.3 | |
| Minimum | take profit in pips | -58.8 | stop loss in pips | -11.9 | |
| Maximum | Reward-Risk | 9.1 | Duration in minutes | 692 | |
| Average | Reward-Risk | 0.9 | Duration in minutes | 75.6 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0 | |
| Maximum | consecutive wins (profit in money) | 4.0 (3.79) | consecutive losses (loss in money) | 15.0 (-18.22) | |
| Average | consecutive wins | 1.0 | consecutive losses | 5.0 |
| Total net profit | -52.36 | Gross profit | 8.59 | Gross loss | -60.95 |
| Profit factor | 0.14 | Expected payoff | -0.87 | ||
| Absolute drawdown | -52.36 | Maximal drawdown (%) | 50.57 (-2825.14%) | ||
| Total trades | 60 | Profit trades (% of total) | 11 (18.33%) | Loss trades (% of total) | 49 (81.67%) |
| Largest | profit trade | 1.39 | loss trade | -3.47 | |
| Average | profit trade | 0.78 | loss trade | -1.24 | |
| Minimum | profit trade | 0.41 | loss trade | -0.04 | |
| Maximum | take profit in pips | 108.7 | stop loss in pips | -135.0 | |
| Average | take profit in pips | 6.0 | stop loss in pips | -50.6 | |
| Minimum | take profit in pips | -58.8 | stop loss in pips | -11.9 | |
| Maximum | Reward-Risk | 6.5 | Duration in minutes | 692.0 | |
| Average | Reward-Risk | 0.4 | Duration in minutes | 94.0 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0.0 | |
| Maximum | consecutive wins (profit in money) | 3.0 (2.48) | consecutive losses (loss in money) | 12.0 (-16.82) | |
| Average | consecutive wins | 1.0 | consecutive losses | 5.0 |
| Total net profit | -22.59 | Gross profit | 7.47 | Gross loss | -30.06 |
| Profit factor | 0.25 | Expected payoff | -0.65 | ||
| Absolute drawdown | -22.59 | Maximal drawdown (%) | 22.11 (-4606.25%) | ||
| Total trades | 35 | Profit trades (% of total) | 10 (28.57%) | Loss trades (% of total) | 25 (71.43%) |
| Largest | profit trade | 2.21 | loss trade | -3.61 | |
| Average | profit trade | 0.75 | loss trade | -1.2 | |
| Minimum | profit trade | 0.05 | loss trade | -0.41 | |
| Maximum | take profit in pips | 268.2 | stop loss in pips | -153.6 | |
| Average | take profit in pips | 47.8 | stop loss in pips | -41.7 | |
| Minimum | take profit in pips | 1.4 | stop loss in pips | -12.0 | |
| Maximum | Reward-Risk | 9.1 | Duration in minutes | 233.0 | |
| Average | Reward-Risk | 1.7 | Duration in minutes | 44.1 | |
| Minimum | Reward-Risk | Duration in minutes | 0.0 | ||
| Maximum | consecutive wins (profit in money) | 3.0 (2.29) | consecutive losses (loss in money) | 9.0 (-10.91) | |
| Average | consecutive wins | 1.0 | consecutive losses | 4.0 |


Markdown is thought as a “lightweight” markup language, hence the name
markdown
. That’s why formatting options are scarce. However, there are some
extensions, for instance brought by RMarkdown.
One point of particular interest is the sizing of figures. Let’s look at some ways how to size a figure with RMarkdown.
We take some data first:
data(mtcars)
names(mtcars)
## [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
## [11] "carb"
Not let’s plot.
Define size in YAML header
We can define the size of figures globally in the YAML part, like this for example.
---
title: "My Document"
output: html_document:
fig_width: 6
fig_height: 4
---
Defining figures size for R plots
Define figure size as global chunk option
As a first R-chunk in your RMD document, define the general chunk settings like this:
knitr::opts_chunk$set(fig.width=12, fig.height=8)
Chunk options
We can set the chunk options for each chunk too. With figh.height
and
fig.width
we can define the size. Note that the numbers default to inches as
unit: {r fig1, fig.height = 3, fig.width = 5}
.
plot(pressure)
For a plot of different size, change simple the numbers: {r fig2, fig.height = 3, fig.width = 3, fig.align = "center"}
.
plot(pressure)
Alternatively, you may change the aspect ratio of the image: {r fig3, fig.width = 5, fig.asp = .62}
.
plot(pressure)
Note that the aspect ratio is based on the fig.width
specified by you. See
here.
Different options for different output formats
The options for figure sizing also depend on the output format (HTML vs. Latex, we do not mention Word here). For instance, in Latex percentage is allowed, as is specified on the options
page: {r fig4, out.width = '40%'}
.
plot(pressure)
But note that it appears to work in HTML too.
Differnce between figure size and output size
We are allowed to specify the
figure size, and secondly the size of the figure as to appear in the output. For
example, if you set the size of a ggplot
figure to large, then fonts etc. will
appear tiny. Better do not scale up fig.height
, but set out.width
accordingly, eg., like this out.width = "70%"
.
Using Pandoc’s Markdown for figure sizing
Alternatively, instead of using R
for plotting, you can just load an image. Of course, it is possible to just use
markdown for that: ![](path/to/figure/figure.png)
.
Change the figure size like this: ![](file.jpg){ width=50% }
. Note that no
space are allowed around the =
(equal sign), and the curly brace {
needs to
come right after the )
brace; no space allowed.
Similarly, with path to local folder:
![](../../sebastiansauer.github.io/images/2016-10-17/unnamed-chunk-5-1.png.png)
{ width=20% }
Centering is not really part of markdown. But there are some workarounds. See:
I used this code:
<center>
![](https://sebastiansauer.github.io/images/2016-10-17/unnamed-chunk-5-1.png){
width=20% }
</center>
Using the knitr
function include_graphics
We can use the knitr function include_graphics
which is convenient, as it takes care for the different output formats and provides some more features (see
here the help
file).
Note that online sources are allowed. Don`t forget to load knitr previously.
If all fails
Just resize the image with your favorite photo/image manager such as Gimp, Photoshop, Preview App etc.
Further reading Finde good advice on Yihui’s option page
here. The Book “R for Data Science” by Hadley Wickham and Garrett Grolemund (read here) is a great resource too. Read chapter 28 on diagrams here. Pandoc’s user guide has some helpful comments on figures sizing with Pandoc’s markdown .