text:
\section{Introduction}
\label{sec:introduction}

Deep Reinforcement Learning (DRL), the combination of reinforcement learning methods and deep neural network function approximators, has recently shown considerable success in \ssarcandy{challenging tasks that have very complex states and many available actions, such as arcade video games~\cite{mnih2015human}, robotic manipulation~\cite{levine2016end}, and even the challenging classic games \robin{-} Go~\cite{silver2016mastering}}.
These methods can learn features that \robin{are} often better than hand-craft \robin{one}s\robin{, which} require more domain knowledge. For example,
Deep Q-Network (DQN) \cite{mnih2015human} \robin{is} one of the most famous DRL method\robin{s}, \robin{and} has achieved super human performance on the Arcade Learning Environment (ALE) \cite{bellemare13arcade}, \robin{which is} a benchmark of Atari 2600 arcade games.

Although the DRL algorithms can usually learn how to take the best action based on the state of the environment, but it can only learn a single environment at a time, despite the existence of similarities between those environments.
For example, the tennis-like game of pong and the squash-like game of breakout are both similar in that each game consists of trying to hit a moving ball with a rectangular paddle, but an agent that is good at pong cannot handle breakout well, \ichao{and vice versa.}
Another issue of DRL is that training DRL agents can be very time-consuming, \robin{so} many researcher\robin{s are} stud\robin{ying} on the methods that can speed up \robin{the} training time \cite{mnih2016asynchronous,van2016deep}.

Some \robin{methods} speed up \robin{the} learning on new tasks by perform\robin{ing} cross environment transfer \cite{rusu2016progressive,parisotto2015actor}, but they all need to pre-train an agent on multiple source environments to generalize the knowledge, which is very time\robin{-}consuming.
In this work, we \robin{are} trying to leverage the prior knowledge learn\robin{ed} by a\robin{n agent in a} single source environment to speed up \robin{the} agent to handle \robin{another} new environment\robin{. U}sing \robin{the prior knowledge in} only one source environment can minimize the \robin{training} time \robin{in another} new environment, and can also solve some issues of reinforcement learning, including unable to handle similar tasks and long training time problems.

\robin{In this paper, w}e propose a semi-supervised \ssarcandy{transfer learning} method that uses the concept of the \ssarcandy{adversarial objective}. More specifically,
a mapping \robin{function is learned} from \robin{the} target observations to \robin{the} source feature space by fooling a domain discriminator that tries to distinguish the encoded target observation from \robin{the} source examples.
We also found it is helpful for transfer\robin{ring} knowledge by \ssarcandy{altering the visual content with proper setting when training on \robin{the} source task, that is, adding proper augmentation when training will be helpful on transferring knowledge to another task.} While our approach can integrate into any DRL algorithm, we show \robin{our} results
by combining it with DQN \cite{mnih2015human} algorithm and \robin{performing on}
Atari 2600
\robin{benchmark}.

Our contributions are two-fold\robin{s}:
First, we propose a method that can leverage \robin{the} knowledge \robin{learned} from a single source task
to
speed up \robin{the} training on \robin{another} new target environment. Second, we found that perform\robin{ing} proper augmentation on the environment to train a source agent and use it as \robin{a} target task initialization often can help.
With these proposed methods, the overall learning on \robin{the} target task \robin{can be} accelerated compar\robin{ing} with \robin{the} baselines that we have considered.

The rest of this paper \robin{is} organized as follows. In Section~\ref{sec:related_work}, we surveyed several previous methods for reinforcement learning, domain adaption, and multi-task agent. \robin{In} Section~\ref{sec:background}\robin{,} we detailed the knowledge of traditional Q-learning and deep Q network, as it is the most popular reinforcement learning algorithm and is used in our method. \robin{In} Section~\ref{sec:approach}\robin{,}
the two main methods used in our approach \robin{are described}, including \textit{adversarial objective} and \textit{augmentation}. \robin{In} Section~\ref{sec:experiments}\robin{,}
a series of experiments \robin{is performed} to evaluate our method
\robin{with} a discussion in detail\robin{s}. Finally, Section~\ref{sec:conclusion} concludes the paper.

\section{Related Work}
\label{sec:related_work}
\subsection{Reinforcement Learning}
Reinforcement learning is a method that can learn how to map \ichao{observations}\ignore{situations} to actions \ichao{by}\ignore{try to} maximiz\ichao{ing} the reward~\cite{sutton1998reinforcement}.
Unlike \ichao{supervised learning paradigm}\ignore{other machine learning}\ignore{will} usually \ichao{requires}\ignore{provide} correct labels \ichao{in order to learn a new task}\ignore{ used for direct feedback}, the reinforcement learner is not told \ichao{the best }\ignore{which }action\ignore{ is best}, but instead \ichao{acting according to the best reward}.\ignore{ need to discover which actions yield the most reward by trying them. }
The chosen action \ichao{affects}\ignore{taken by the agent may affect not only} the immediate reward,\ignore{but also} the next \ichao{observation}\ignore{situation}, and\ignore{ through that,} all subsequent rewards.

In recent years, \ichao{with}\ignore{thanks to} the significant \ichao{advances of}\ignore{progress in} deep learning, \ichao{especially with convolutional neural network}, numerous researchers have attempted to use deep learning to solve the reinforcement learning tasks \cite{mnih2015human,mnih2016asynchronous,van2016deep,mnih2013playing}.
Mnih~{\textit{et~al.}}~\cite{mnih2015human} presented Deep Q-Network (DQN) that uses a deep network to approximate the state-action value function \ichao{used in traditional Q-learning~\cite{watkins1992q}}.
\ichao{It} solves the storing space issue in traditional state-action tabular representation (Q-table) \cite{watkins1992q}.
\iccmt{I don't understand..}
Van Hasselt {\textit{et~al.}}~\cite{van2016deep} further extend\ichao{ed} the DQN by solved an overestimate action values issue suffered for the DQN algorithm and leads to much better performance.
Mnih~{\textit{et~al.}}~\cite{mnih2016asynchronous} introduced a deep reinforcement learning framework that uses asynchronous gradient descent for \ichao{optimizing}\ignore{optimization of} deep neural network controllers, that achieve state-of-the-art performance\ignore{ in training time}.
Fortunato~{\textit{et~al.}}~introduced a method called \ichao{NoisyNet}\ignore{NosiyNet}~\cite{DBLP:journals/corr/FortunatoAPMOGM17}, \ssarcandy{by added parametric noise to its weight to induce stochasticity of the agent's policy, that can be used to aid efficient exploration.
Replacing the conventional exploration heuristics for A3C, DQN with NoisyNet can yield higher scores for a wide range of Atari games.}

\subsection{Domain Adaptation}
Deep neural networks are able to learn powerful representations from large quantities of labeled input data, however, they usually fail to \ichao{generalize to}\ignore{handle when the input} \ichao{new datasets}\ignore{distributions} \ichao{with even minor}\ignore{have some} changes.
\ichao{In recent years,} numerous\ignore{ studies on} domain adaption methods have been proposed~\cite{tzeng2017adversarial,sun2016deep,ganin2015unsupervised,sun2016return,xiao2016learning}.
Instead of collecting labeled data and training a new classifier for every possible scenario, unsupervised domain adaptation methods are trying to compensate for the degradation in performance by transferring knowledge from labeled source domains to unlabelled target domains.
Sun~{\textit{et~al.}}~\cite{sun2016return} proposed \textit{CORAL}, that can align the second-order statistics of \ssarcandy{the source and target distributions of features with a linear transformation. }
Sun and Saenko~\cite{sun2016deep} \ichao{proposed a differentiable \textit{CORAL} loss} that \ichao{can be minimized end-to-end and be integrated with general deep neural networks.}
Ganin and Lempitsky~\cite{ganin2015unsupervised} use\ichao{d} a domain classifier with a gradient reversal layer that multiplies the gradient by a negative constant, which can ensure that the feature distributions over the two domains are made similar, thus resulting in the domain-invariant features.
Tzeng~{\textit{et~al.}}~\cite{tzeng2017adversarial} present a method that uses the concept of \ignore{Generative }\ichao{adversarial learning}\ignore{Network} \cite{goodfellow2014generative};
\ichao{they} pre-train a source encoder CNN with labeled data, then perform adversarial adaptation by learning a target encoder CNN such \ichao{in order to fool the }\ignore{that a} discriminator.
\ichao{This} result\ichao{s}\ignore{ing} in a target encoder CNN that can produce features that similar to source features.

\subsection{Multi-task Agent}
Although \ichao{an agent trained by} DRL can \ichao{outperform} human-expert level across many Atari games, but \ichao{fail to generalize across multiple games}\ichao{each agent can only play a single game. }
\iccmt{What is ``model compression'' technique here..?}
To \ichao{address}\ignore{solve} this issue, some researchers attempt to train a single agent to handle multiple tasks by integrate model compression technique to deep reinforcement learning.
Parisotto~{\textit{et~al.}}~\cite{parisotto2015actor} first present\ichao{ed} ``Actor-Mimic'', exploit\ichao{ed} the use of \ichao{DRL}\ignore{deep reinforcement learning} and model compression techniques to train a single policy network that learns how to act in a set of distinct tasks by using the guidance of several expert teachers.
Yin and Pan~\cite{yin2017knowledge} propose\ichao{d} a new multi-task policy distillation architecture \ichao{by} concatenat\ichao{ing} a set of task-specific convolutional layers and shared multi-task fully connected layers.
The shared multi-task fully connected layers enable the agent to learn a generalized \ichao{policy}\ignore{reasoning about when to issue what action under different circumstances}.
Sharma and Ravindran~\cite{sharma2017online} propose\ichao{d} a\ignore{simple yet efficient} multi-task learning framework which solves multiple\ignore{goal-directed} tasks in an online  learning setup without the need \ichao{of training multiple task-specific teacher (expert) networks.}

\section{Background}
\label{sec:background}
Our method is aiming for leveraging knowledge \ichao{learned} from a source task to help speed up \ichao{learning}\ignore{training} on \ichao{a} new target task.
In this work, we choose to integrate the proposed method into deep Q networks (DQN)~\cite{mnih2015human}, since DQN is one of the most popular deep reinforcement architecture.
In this section, we detailed the knowledge of Q-learning in Section~\ref{subsec:q-learning} and further describe DQN in Section~\ref{subsec:dqn}.

\subsection{Q-Learning}
\label{subsec:q-learning}
Reinforcement learning involves an agent, a set of states $S$, and a set of actions $A$. By performing an action $a \in A$, the agent transitions from state $(s)$ to another state $({s}')$.
After performing an action, \ichao{the agent} will get a reward.
The goal of reinforcement learning agent is to maximize its total reward.

Q-learning was first introduced by Watkin {\textit{et~al.}}~\cite{watkins1992q}, a reinforcement learning method that can estimate the optimal action value by interacting with the environment.
The Q \ichao{stands for}\ignore{means} the quality of a ``state-action pair'', by interacting with environment and record all the state-action transitions, it can gradually update the Q-value of the state-action pair.
The quality of a state-action pair is defined as:
\begin{equation}
Q(s, a) \longrightarrow  \mathbb{R}
\end{equation}

For each step $t$, the agent select\ichao{s} action $a_{t}$ and transits from state $s_{t}$ to state $s_{t+1}$.
The new Q-value is update\ichao{d} as the last step Q-value $Q(s_{t-1}, a_{t-1})$ plus the current reward $r_{t}$ and estimate future optimal value multiply by discount factor $r_{t}+\gamma \max_{a}Q(s_{t+1}, a)$, and the update equation then can describe as follow:

\begin{equation}
Q(s_{t}, a_{t}) = (1-\alpha)Q(s_{t-1}, a_{t-1}) + \alpha(r_{t}+\gamma \max_{a}Q(s_{t+1}, a))
\end{equation}
where $\alpha$ is learning rate and $\gamma \in [0, 1]$ is a discount factor that trades off the importance of immediate and \ichao{future}\ignore{later} rewards.

\iccmt{
The writing is a bit messy...
Will come back later.
}

\subsection{Deep Q Network}
\label{subsec:dqn}
Although Q-learning can be used to estimate optimal \ichao{policy}\ignore{action}, instead of learning all action values in all states, which may be too large to learn in complex environments, we can learn a parameterized value function $Q(s, a; \theta)$, where $\theta$ are the parameters of the network.
For updating the network parameters after taking action $a_{t}$ in state $s_{t}$ and observing the reward $r_{t+1}$ and next state $r_{t+1}$ is:

\begin{equation}
\theta_{t+1} = \theta_{t} + \alpha(Y_{t} - Q(s_{t}, a_{t}; \theta_{t}))\nabla_{\theta_{t}}Q(s_{t}, a_{t}; \theta_{t})
\end{equation}

and $Y_{t}$ is defined as:

\begin{equation}
Y_{t} = r_{t+1} + \gamma \max_{a}Q(s_{t+1}, a; \theta_{t})
\end{equation}

where $\alpha$ is learning rate and $\gamma \in [0, 1]$ is a discount factor that trades off the importance of immediate and later rewards.

A most famous deep reinforcement learning algorithm is deep Q network (DQN) that introduced by Mnih et al. \cite{mnih2015human}. DQN is a multi-layered neural network that for a given state outputs a vector of action values. For an $n$-dimensional state space and an action space containing $m$ actions, the neural network is a function from $\mathbb{R}^{n}$ to $\mathbb{R}^{m}$.

There have two important components that used in DQN, a target network and replaying memory. The target network is same as the online network, and the parameters of target network $\theta^{'}$ will copy from the online network every $t$ steps, and kept fixed on all other steps. The target network is used to predict the true Q value when learning ($Y_{t}$). For the replaying memory, observed transitions are stored for some time and sampled uniformly from this memory buffer to update the network. Both the target network and the replaying memory improve the training stability and overall performance of the algorithm \cite{mnih2015human}. And to explore environment more stable and faster, DQN also using $\epsilon$-greedy\cite{sutton1998reinforcement} agent's policy, that agent will select a random action with certain possibilities.

In this work, we split the agent into two networks as shown in Figure~\ref{fig:3_training} (a),  a feature encoder $F$ and a Q-value predictor $V$. Feature encoder extract features based on the input observations, and the Q value predictor uses these encoded features to predict the corresponding action Q values.

\section{Approach}
\label{sec:approach}

In this section, we present a transfer learning \ichao{method}\ignore{architecture} that can speed up the learning progress when facing new target \ichao{task}\ignore{environment}.
Furthermore, we found a novel data augmentation method that can help single task agent to avoid over-fitting and thus learn more \ichao{generalized}\ignore{core} \ichao{policy}\ignore{features}.

\subsection{Transfer with Adversarial Objective (AdvTransfer)}
\label{subsec:transfer_learning}

We present a framework for unsupervised domain adaption between deep reinforcement learning tasks.
Assume a source environment $Env_{s}$ and a target environment $Env_{t}$, there \ichao{are}\ignore{have some} domain shift\ichao{s} between $Env_{s}$ and $Env_{t}$.
We have access to the reward and next state after performed an action on $Env_{s}$

The overview is shown in Figure~\ref{fig:3_training}, we first pre-trained the source task agent on $Env_{S}$, training a feature encoder $F_{S}$ and Q-value predictor $V_{S}$ that can return a vector of Q values for all possible actions by given features of observation, thus can select the best action $a$.
And our goal is to learn a target feature encoder $F_{T}$ and Q-value predictor $V_{T}$ that can handle $Env_{T}$ as fast as possible.

We integrate generative adversarial network~\cite{goodfellow2014generative} concept into transfer progress, as shown in Figure~\ref{fig:3_training} (b). The target feature encoder $F_{T}$ plays the role of generator, and a domain classifier $D$ that can predict the domain label (source or target domain) by seeing the encoded features output by $F_{S}$ and $F_{T}$.
We then perform adversarial adaption by train\ichao{ing} the $F_{T}$ \ichao{in order to} to \ichao{prevent}\ignore{fool} the domain classifier \ichao{from predicting the correct domain label from the encoder features.}
The target feature encoder (Generator) and domain classifier (Discriminator) are playing counterparts, and at the end of training, the target feature encoder $F_{T}$ will learn the feature representations that can be generalized across both source and target domain.

\begin{figure*}[t!]
\centering
\includegraphics[width=\linewidth]{figs/overview.png}
\caption{An overview of our transfer process. (a) We first well-trained an agent on source task environments, then (b) we train a domain classifier and target feature encoder that have an adversarial objective to learn a map that maps target feature encoder to source feature encoder. (c) At the testing time, we can use source task Q value predictor directly because the target feature encoder's output features are similar to source feature encoder. The dashed line means fixed parameters.}
\label{fig:3_training}
\end{figure*}

In the adversarial objective approach, the main goal is to regularize the learning of the source and target mappings, we can minimize the distance between $F_{S}(S_{s})$ and $F_{T}(S_{t})$ distributions, where $S_{s}$ and $S_{t}$ is the states of $Env_{S}$ and $Env_{T}$.
If the distribution between $F_{S}(S_{s})$ and $F_{T}(S_{t})$ are similar, then we can directly apply source task Q-value predictor $V_{s}$ to the $F_{t}$, skipping the need to learn a $V_{t}$.

We first describe the domain classifier, $D$, which classifies
whether encoded features are drawn from the source or the target domain. Thus $D$ is optimized according to a standard cross entropy loss, $L_{D}(S_{s}, S_{t}, F_{s}, F_{t})$ where the labels indicate the origin domain, defined below:

\begin{equation}
    L_{D}(S_{s}, S_{t}, F_{s}, F_{t}) = -\log(D(F_{s}(S_{s}))) - \log(1 - D(F_{t}(S_{t})))
\end{equation}

And for the generator, we train with the standard loss function with inverted labels \cite{goodfellow2014generative}, then the loss can be described as:

\begin{equation}
    L_{G}(S_{t}, D) = -\log(D(F_{t}(S_{t})))
\end{equation}

Then, the source and target mappings are optimized according to an adversarial objective, they are optimized to confuse $D$ to unable to predict reliable domain label.

\subsection{Augmentation}
\label{subsec:augmentation}

Most deep reinforcement learning algorithm can achieve great performance in single environment, but agent often cannot handle a new \ichao{slightly altered} environment.
In Figure~\ref{fig:4.1_worse_performance}, we show the screenshot of original Pong (the leftmost column) and two variations of Pong.
A DQN agent that pretrained on original Pong performs really bad on two of it's variations (-15.9 on Pong with Gaussion noise and -20.9 on Pong with inverted color).

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/4-2_worse_performance.png}
\caption{The agent are trained on Pong for 10 million frames, and test the agent on both Pong (left), Pong with Gaussian noise (middle) and invert color Pong (right). We use $\epsilon = 0.05$ for $\epsilon$-greedy policy and $\sigma = 15$ for noise, the mean scores are average of 10 episodes game play. }
\label{fig:4.1_worse_performance}
\end{figure}

Rusu~{\textit{et~al.}}~\cite{rusu2016progressive} analyzed the Pong to \ichao{noisy} Pong\ignore{ with noise} case, and found that the high-level filter on the clean task is not sufficiently tolerant to the added noise.
Thus some new low-level vision has to be relearned in order to adapt to the new task environment.
We found that by add\ichao{ing} some augmentations \ichao{to the source task during} training on the source task would help to avoid over-fitting and thus learn more key features of the task.
We added a data augmentation layer before feed the input data into replay memory, the data augmentation layer will randomly transform the input.
For example, Eq. \eqref{eq:4} demonstrates a data augmentation layer that will invert the color of environment state (screen) with the probability of 30\%, and remain unchanged otherwise.

\begin{equation}
\label{eq:4}
S = \begin{cases} 1 - S & 30\% \\
S & \mbox{otherwise }\end{cases}
\end{equation}

While this method increases the difficulty of training the agent, but with proper augmentation setting, the difficulty of training with augmentation is almost \ichao{the} same as \ichao{the origin} (Figure~\ref{fig:4.1_toy_example} (a)).

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/4-2_toy_example.png}
\caption{(a) The training progress of Pong and Pong with augmentation using Eq.\eqref{eq:4}.
(b) Training progress on a new environment using different pre-trained model as initial. The environment in (b) is Pong with Gaussian noise and $\sigma=50$. We use constant $\epsilon=0.1$ for $\epsilon$-greedy policy.}
\label{fig:4.1_toy_example}
\end{figure}

In Figure~\ref{fig:4.1_toy_example}(b), we show three different \ignore{standard }DQN agent training progress on "Pong with Gaussian noise".
The ``\textit{Pong with data aug.}'' \ichao{stands for the agent trained by} using the pre-trained model of Pong with augmentation defined as Eq.\eqref{eq:4}.
The \textit{Baseline 1} use\ichao{s} random initial, and \textit{Baseline 2} use\ichao{s} pre-trained model of Pong.
It shows that using the pre-trained model of Pong with augmentation \ichao{obtains higher score within equal steps compared to} other \ichao{competitive methods}\ignore{baselines}.

\subsubsection{Detail Evaluation}
\label{subsubsec:augmentation-test}

We now further discuss the detail evaluation on augmentation setting, including why and how to find the good augmentation method for training.

In Section~\ref{subsec:augmentation}, we \ichao{prove} that \ichao{the agent trained on source task with augmentation} outperforms the alternative baseline transfer methods.
C. Zhang {\textit{et~al.}}~\cite{zhang2018study} have conduct a systematic study of standard reinforcement learning agents and find that they could overfit in various ways, and their result can support our finding which shows in Figure~\ref{fig:4.1_worse_performance} and Figure~\ref{fig:4.1_toy_example}.

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/sample-aug-frame.png}
\caption{Different intensities of each augmentation on Pong. The first row shows the different size of grid noise, from left to right are 30, 20 and 10, the line color are all white; Second row is different level of Gaussian noise, from left to right are $\sigma=20$, $\sigma=50$ and $\sigma=80$; \ssarcandy{Third row is different frequency of inverted frames, the percentage means how often will the frame be inverted color.} }
\label{fig:4.2_aug-sample-frame}
\end{figure}

\ichao{Inspired by standard computer vision training pipeline, we added several varieties to the training set.}
By integrate augmentation method into reinforcement learning scenario, some constraint\ichao{s} must be added:
\begin{enumerate}
    \item The augmentation must not break the consistency of the visual content.
    \item

    The augmentation should not be too hard for the agent to learn.
    \item

    The augmentation should as different \ssarcandy{from original \ichao{visual content}} as possible to avoid over-fitting.
\end{enumerate}

The first constraint came from reinforcement learning characteristic, that the position on visual content is crucial, using augmentation method like rotate or flip would break the consistency of visual content.
Second, using the augmentation that altered the \ichao{visual} content heavily would cause the agent fail to learn the task.
\ssarcandy{And for the third point, using visual altered augmentation \ichao{prevent the} agent \ichao{from} over-fitting and increase the ability of the agent to tolerate noise.
It is important to find a balance between second and third point, i.e., the augmentation should be as different from original visual content as possible but not be too hard for the agent to learn.
}

We conduct an experiment on series of different augmentation setting, evaluate both the distance between with augmentation and without augmentation and the final performance on the task.
We perform three sets of different augmentation method, including \textit{Gauss}, \textit{Grid} and \textit{Inverted}.
Each method further test three different \ichao{variation levels}\ignore{intensities}, the sample frames of different \ichao{levels} of method \textit{Gauss} and \textit{Grid} \ichao{are shown}\ignore{shows} in Figure~\ref{fig:4.2_aug-sample-frame}, and the \textit{Invert} method \ichao{levels}\ignore{intensities} are defined as the invert frame \ichao{frequencies}\ignore{probabilities}.

\begin{figure}[ht]
\centering
\includegraphics[width=0.5\linewidth]{figs/aug-test.png}
\caption{
Augmentation test for different augmentation method. We evaluate the difference and performance with different augmentation method on Pong, including \textit{Gauss}, \textit{Grid} and \textit{Inverted}. The x-axis means the difference between augmented Pong and normal Pong, which evaluated with PSNR, and the y-axis means the agent performance on normal Pong. The label beside data point indicated augmentation method and the intensity. \ssarcandy{We choose \textit{invert 30\%} for the augmentation method because it can not only remain high performance but also have farthest distance from normal Pong.}}
\label{fig:4.2_aug-test}
\end{figure}

The experiment results are shown in Figure~\ref{fig:4.2_aug-test}, we plot each augmentation method on a difference-performance 2D plot, where the x-axis represents \ichao{the appearance difference from} the augmentation \ichao{frame} to the normal one, and y-axis \ichao{indicates}\ignore{means that} how well an agent handle the task after training.
We use PSNR to evaluate the \ichao{appearance} distance between \ichao{game playing frames}, the smaller PSNR means longer distance.
We \ichao{made}\ignore{make} some observation\ichao{s} from this plot.
First, the stronger \ichao{level} of augmentation would cause the agent gradually unable to handle the task.\ignore{, and the PSNR value became smaller, which meet our expectation. }
We need to choose the one that meets the constraints describe above, that the augmentation should not be too hard for agent to learn but as different from normal as possible, although all three augmentations (\textit{Gauss}, \textit{Grid} and \textit{Inverted}) can have good performance in lower \ichao{level}\ignore{intensity} setting, i.e. \textbf{Gauss $\sigma=20$}, \textbf{Grid 30x30} and \textbf{Inverted 30\%}, but the \textbf{Inverted 30\%} is the only one that has smallest PSNR value and still remains good performance, so it would be the better augmentation setting.

\begin{figure*}[ht]
\centering
\includegraphics[width=\linewidth]{figs/5-1_pong_variants2.png}
\caption{
Transfer progress of Pong variants. Pong variants include noisy, inverted color and scaled transforms. The results are averaged over 3 runs and the shadow represent standard deviation.}
\label{fig:5-1_pong_variants}
\end{figure*}

\section{Experiments}
\label{sec:experiments}
In the following experiments, we evaluate \ichao{the transfer effectiveness of} our method \ichao{using the Arcade Learning Environment (ALE)~\cite{bellemare13arcade}}.
\ichao{First, we conducted an experiment to evaluate how our method improve the transfer effectiveness across synthetic variations of Pong}.
\ichao{Second}, we experiment on \ichao{a} more challenging setting\ichao{, i.e.~}transfer between different Atari games.
We show sample frames of the selected tasks in Figure~\ref{fig:5_example_frames}.
\ichao{
In each experiment, we compare the agent performances of following four methods:
\begin{itemize}
    \item \textit{random baseline}: train DQN directly target task with random initialized weights.
    \item \textit{na\"{\i}ve baseline}: train DQN on target task with the pre-trained weights on source task.
    well-trained source task model parameters to target task network
    \item \textit{our method w/o augmentation}: DQN with adversarial objective trnasfer (described in Section~\ref{subsec:transfer_learning}).
    \item \textit{our full method}: DQN with adversarial objective transfer and frame augmentations.
\end{itemize}
}

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/5_example_frames.png}
\caption{Example frames from different domain\ichao{s}. (a) Pong variants: noisy, recoloured and scale transforms; (b) Atari games.
\ssarcandy{From top right to bottom left: Breakout, Pong, Demon Attack, Space Invader}.
These games introduce a more challenging setting for transfer.}
\label{fig:5_example_frames}
\end{figure}

\subsection{Pong Variants}
\label{subsec:pong_variants}
The first evaluation domain is a set of synthetic variants of the Atari game ``Pong''.
\ichao{We created synthetic variants by altering visual appearances of the original ``Pong''.}
The variants of Pong are \textbf{Noisy} (Gaussian noise is added to the inputs), \textbf{Grid} (fixed grid lines are added on input), \textbf{Invert} (input color is inverted), and \textbf{Scale} (input is scaled by 75\% and with black padding).
Example frames are shown in Figure~\ref{fig:5_example_frames} (a).
\ichao{The purpose of this experiment is to test}\ignore{thus providing a setting where we \ichao{are}\ignore{can be} confident that} \ichao{whether the agent can learn the core game play across it's visual variants}.

Figure~\ref{fig:5-1_pong_variants} shows the transfer progress \ichao{of}\ignore{in} each variant.
\ssarcandy{Overall, \ichao{our method (both with and without augmentation versions)}\ignore{ of our method} achieve a better learning progress on target task compare to baseline methods.
\ichao{Our method saves} at least\ignore{up to} 1 millions frames of training time to reach the convergence state for \textbf{Pong-grid}, \textbf{Pong-scale} and \textbf{Pong-invert}.
}

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/pong-transfer-score.png}
\caption{Transfer score matrix. The higher score means the better transfer performance. Colours indicate transfer scores (clipped at 2). }
\label{fig:5-2_pong_transfer_score}
\end{figure}

\ichao{Moreover}\ignore{For a more clearly look}, we measure the transfer performance by the transfer score~\cite{rusu2016progressive}.
\ichao{The transfer score is defined as the relative performance of an method compared with \textit{random baseline} method.}
\ssarcandy{
Higher transfer score means more effective transfer.
Transfer score larger than 1 means the performance is relatively better than \textit{random baseline} method, \ichao{i.e.~positive transfer.}
\ichao{On the contrary, transfer score smaller than 1 means the performance worse than \textit{random baseline} method, i.e.~negative transfer.}
}

As shown in Figure~\ref{fig:5-2_pong_transfer_score},
we can \ichao{observe} that our method get better transfer scores \ichao{across} all experiments.
Interestingly, the \textit{naive baseline} (initialized with pre-trained weights on ``Pong'') obtains \ichao{worst} transfer score\ignore{ are not pretty good}.
\ichao{It} indicates that there \ichao{are}\ignore{would have} negative transfer effect\ichao{s}, especially for \textbf{Pong-invert} case.

Our method \ichao{boosts the}\ignore{provided an increase in } learning speed \ichao{for both with and without augmentation versions of our method.}
\ignore{used are much better than the Naive Baseline approach.}
\ichao{As shown in Figure~\ref{fig:5-1_pong_variants}, we can observe that} our method with augmentation \ichao{learns}\ignore{, the learning speed gets a } significant \ichao{faster}\ignore{ improved} compared to the version without augmentation.
\ichao{This shows} that \ichao{our method with augmentation can significantly help agent to learn the core game play across visual variants of a single game.}

We further look close\ichao{ly} at specified \ichao{transfer pair} cases.
For \textbf{Pong-gauss} case, the difference between source and target \ichao{task}\ignore{environment} is \ichao{smallest}\ignore{shortest}.
\ichao{We can observe that even the \textit{na\"{\i}ve baseline} method provide\ichao{s} a very good transfer effect}.
Although \ichao{the \textit{na\"{\i}ve baseline} method reaches max} transfer scores (i.e.~2.0), our method still \ichao{outperform}\ignore{beat} it on coverage time as shown in Figure~\ref{fig:5-1_pong_variants}.
For \textbf{Pong-invert} case, it shows that \ichao{\textit{na\"{\i}ve baseline} method} fails to learn on target task, which means that the \ichao{knowledge learned from source task}\ignore{source task parameters}
are \ichao{hindering the agent to learn target task.}
\ichao{O}n the other hands, our method without augmentation \ignore{can}minimize\ichao{s} the negative effect because the generator will try to produce features that \ichao{are} similar with source task's features.
In terms of our \ichao{full} method, it achieves great performance at starting time is because that the source task is trained with 30\% inverted frame, in other words, the source agent has learned \textbf{Pong-invert} at training time, thus it can handle this specified case well.
In general speaking, our method obtains the best \ichao{transfer} result, followed by our method without augmentation, and \ichao{na\"{\i}ve transfer} method obtains worst result.

\subsection{Multi-level Transfer}
\label{subsec:cross_level}
Next, we designed a multi-level game scenario to test \ichao{the effetiveness of} our transfer method.
It is common that for each game, the designer designed multi-level\ichao{s with increasing difficuties.}
Instead of training the agents separately on each level, \ichao{we} use \ichao{the proposed} transfer learning method \ichao{to increase the learning speed when facing harder levels.}

In our scenario, we build a \ichao{multi-level version of} Breakout\footnote{Environment source code can be found at https://github.com/SSARCandy/breakout-env} with different difficulties.
We designed 4 different levels \ichao{with increasing difficulties} by shrinking the paddle width, the different paddle widths are: 30px width (level-1), 20px width (level-2), 10px width (level-3) and 5px width (level-4).
Figure~\ref{fig:5-2_cross_level_example_frames} show 4 different levels sample frames.

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/5-cross-level-breakout-example-frames.png}
\caption{
Sample frames of different level of Breakout.
}
\label{fig:5-2_cross_level_example_frames}
\end{figure}

And we perform 3 transfer cases, including level-1 to level-2, level-1 to level-3 and level-1 to level-4.
The training progress shown as Figure~\ref{fig:5-2_cross_level_result}.

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/5-cross-level-result.png}
\caption{
Transfer progress of cross-level scenario.
}
\label{fig:5-2_cross_level_result}
\end{figure}

We can find that the worst performance is ``Random initialize'' (red dashed line) because \ichao{the agent was trained} from scratch, without any prior knowledge.
And all other transfer methods have very good transfer effectiveness and can be reached stable performance within 1 million steps.
For width 30 to width 20 (level-1 to level-2) case, the performance of our methods (both w/ and w/o augmentation) are better than the Naive method, and augmentation (orange line) helps \ichao{the} agent to learn fast\ichao{er} at the beginning.
For width 30 to width 10 (level-1 to level-3) case, our methods still have a noticeable \ichao{boost} of learning effectiveness than Naive method.
Finally, for with 30 to width 5 (level-1 to level-4) case, there is barely any difference between Navie method and our methods.
This suggested that the difficulties of the final level (i.e.~level 4) has significant different from all the previous levels.
The performance of the transfer method can then be used to identify the difficulty differences during the game designing process.

\subsection{Cross Games Transfer}
\label{subsec:atari_game}
Next we investigate the transfer \ichao{effectiveness} between different Atari games.
\ichao{W}e select 4 different games from Atari 2600 to perform cross game transfer experiments, including Pong, Breakout, SpaceInvader, and DemonAttack.
\ichao{We choose} Pong and Breakout \ichao{because they share}\ignore{are considered as having} some similarit\ichao{ies of gameplay, i.e.~the player}\ignore{ because both gameplay consists of } tr\ichao{ies} to hit a moving ball with a rectangular paddle.
\ichao{On the other hand,}\ignore{And} SpaceInvader \ichao{and}\ignore{is considered similar to } DemonAttack \ichao{shares similar gameplay, i.e.~the player}
need to shoot moving enemies.
In this experiments, we perform transfer between these selected games.

\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{figs/cross-game-transfer-score.png}
\caption{Cross game transfer score matrix.
The higher score \ichao{indicates}\ignore{means} the better transfer performance.
Colours \ichao{encode}\ignore{indicate} transfer scores (clipped at 2).
The X sign mean\ichao{s} source and target task are \ichao{the} same and no need to transfer.
}
\label{fig:5-3_cross_game_transfer_score}
\end{figure}

\ichao{We}\ignore{The  summary} \ichao{report} the transfer results\ignore{are reported as} in the transfer scores matrix shown in Figure~\ref{fig:5-3_cross_game_transfer_score}.
In this matrix, we compare three different \ichao{methods}\ignore{approaches}, including na\"{\i}ive \ichao{transfer} baseline, our \ichao{method} w/o augmentation, and our \ichao{full} method.

Overall, the \ichao{na\"{\i}ve transfer} method often got transfer score that \ichao{is} smaller than 1, \ichao{which indicates}\ignore{means} that it needs more training time compare to training on target task directly, thus have negative transfer effect.
\ignore{For }\ichao{O}ur approaches \ichao{obtain higher} transfer scores than \ichao{na\"{\i}ve transfer} approach in most of the cases, \ichao{which indicates that our methods} help to learn the target tasks.
And in some cases, although transfer score\ichao{s are}\ignore{is} not high, our method eliminates the negative effect \ichao{that introduced by na\"{\i}ve transfer method}.

For our method with augmentation, the benefit \ichao{of} augmentation is not so significant \ichao{as}\ignore{like our experiments} in Pong variants \ichao{experiment} described in Section~\ref{subsec:pong_variants}.
In some case\ichao{s} like \textbf{Pong to Breakout} and \textbf{Pong to DemonAttack}, augmentation still helps the \ichao{agent}\ignore{model} learn\ichao{s} faster\ignore{ than without it}.
And in other cases, the performance\ichao{s} with and without augmentation did not \ichao{demonstrate}\ignore{shows a} noticeable \ichao{differences}\ignore{benefit}.

\ichao{We also observed that some of the transfer performances of the similar gameplay pairs}
(Pong and Breakout, SpaceInvader and DemonAttack) \ichao{are not obviously improved.}
We believe that this is because these Atari games are too different than some similarity between games could not take advantage when transferring.

\section{Conclusion}
\label{sec:conclusion}
In this works, we investigate the knowledge transfer for deep reinforcement learning\ignore{scenario}.
Unlike previous works \cite{rusu2016progressive,parisotto2015actor} that \ichao{requires training multiple agents on}\ignore{need} multiple source task\ichao{s} for generaliz\ichao{ing} and transfer\ichao{ing} to target task, we proposed a method that can accelerate the training progress on a new task with only single prior task.\ignore{ knowledge.}
Furthermore, we found that \ichao{with}\ignore{ using} a \ignore{deadly}simple \ichao{data} augmentation method\ichao{,} \ichao{the agent can learn the}\ignore{can help} target task \ichao{faster}\ignore{have a better initial guess of model parameters}.
And we \ichao{demonstrated}\ignore{proved that} our \ichao{method}\ignore{approach} outperforms baselines in both easy and challenging cases \ichao{using Atari 2600 benchmark.}\ignore{by evaluating on popular benchmark Atari 2600 domain.}

\bibliographystyle{IEEEtran}

redpajama_set_name: RedPajamaArXiv


Do You Ever Tire of What You Do?
My answer was, "Not once." And I have had some interesting invitations, from being president of an educational institution, pastoring a sizable church, and heading up another non-profit association. I honestly did not even have to pray about those. I am absolutely convinced apart from something that God knows and I don't, He wants me to remain just where I am. And I have seen nothing more exciting for two reasons.
A drug addict finds victory for the first time.
A person with suicidal thoughts finds purpose in living.
A prisoner finds freedom on the inside of a jail.
Those overcome with the fear of death now anticipate that moment when life here ends and life in His presence begins.
The list goes on and on. God's stories can't be beat.
Second, I want my life to count for something eternal. Nothing is more eternal than seeing people's eternal address changed from the kingdom of darkness to the kingdom of light.
Editor's Note: The above picture of Larry and his family was taken April 24,1998 at EvanTell's 25th Anniversary Celebration.


I start by curling my hair using the Remington Thermaluxe Curling Wand. This wand is amazing because it heats up in only 30 seconds and curls hair even faster. Talk about fast results! I always curl my hair away from my face. This gives the look a more wind blow, beachy effect—very flattering!
Okay, lets be real. I could wear this style any and every day, regardless of when the last time I showered was. However, if you were up late studying the night before and didn't have time to wash your hair, DON'T PANIC! On mornings like these, I spritz a little dry shampoo into my hair before throwing it up into a high ponytail. If this is your second day of curls then a light touch up and a cute headband is all you need before you're ready to walk out the door! Even if you're starting fresh, this style is super fast and easy. I don't know why, but curling my hair when it's in a ponytail is always quicker for me to do than otherwise!


Sorry for the late posting, but thank you for your patience. We'd like to thank Good Old Games for their contributions of: Homeworld: Emergence and Homeworld: Deserts of Kharak.
Here's how you claim the prize – email us at explorminate@gmail.com and in the e-mail include the handle you used in the Giveaway and that it. You will have your GoG key within 24 hours. If winners do not claim their keys within 72 hours, the runner-ups will be posted.
Weekly eXchange #140 – Back From The Dead!
Congrats to the lucky winners. Now hurry up and email Explorminate so you don't miss out on your prize.
Woo hoo! Thank you guys for doing this!
I got the key and it redeemed very well. Thanks again! I'm happy I got the lucky dice roll this time!
I'm surprised people don't believe in this site and its contests. They really should.
Great !! Thank you so much ! I write an email immediately. ! Thank you.
Thank you very much guys, i am very happy now, this is genuine a game i wanted and now i won it. Thank you very much.
Hey Gerald, e-mail me at the address above to collect your prize.
Hi Nate, i did. Did you not get my mail? I actually send it later again just to be sure, lol. So i have send it 2 times now. Let me know if you did not get it. Please, i do not want to miss out on my prize.
Found your email, response in on its way.
Thank you, but I already bought the game, so I will be declining your offer.


BARE in the Woods is delighted to announce that one of London's music iconic clubs is set to curate a stage at this summer's festival, taking place at Garryhinch Woods near Portarlington.
Camden's KOKO club will host some of the best of UK grime and disco house on the KOKO Burst Stage; featuring artists such as Icarus, Crazy P Soundsystem, Jay Prince, New Gen & Friends, NVOY, Jafaris, DJ Cable and Jonny X.
They join one of the most diverse festival line-ups set for Ireland this summer, that already has Canadian electro-pop sensation Kiesza, House of Pain and US grunge-rockers Helmet announced as headliners. Also bound for the festival are Mike Skinner & Murkage present Tonga, HamsandwicH, UK hip hop/grime artist Akala, Danish experimental pop trio WhoMadeWho, Rubberbandits, Right Said Fred, Alvarez Kings, Jon Stevens (INXS), The Frank & Walters and RSAG.
The BARE17 Dance Arena features some top class artists in Dan Shake, Cinema, Damiano Von Eckert, Phare, Mr Beatnik and Josh McGowan, while the Spoken Word Stage (staged in an amazing full-scale Crannog) hosts Dublin Slam Poet Champion Jon Cummins, Ri Ra, David Jackson, Cormac Lally, Stuart Wilde, Tempermental Missy Elayneous and more.
BARE in the Woods organiser, Brendan Morrissey, says: "I saw Kiesza play the Wireless Festival some years back. Amazing talent, I guess you have to be to write for Rhianna and have massive number ones like 'Hideaway'. We're thrilled to be able to invite her. Helmet and House of Pain might even bring back the art of stage diving."
Co-organiser Peter Dunne says: "We're looking forward to seeing all the new artists performing on the MobStar on our Lake Stage. Mike Skinner, Rubberbandits are some of my favourites, but Right Said Fred might just be the gig of the summer. Legends".
New music app Mobstar has recruited a fantastic Irish line-up for BARE in the Woods with the likes of Brave Giant, Chasing Abbey, Super Silly, Katie Laffan, MindRiot, Pranks, Katie Cassidy and Emma Jai among many selected to play, while the Comedy Stage features Andrew Maxwell and Karl Spain as its headliners.


text:
Q: Gore transform to map XY points Given a 2D point, is there a function to find the coordinates of the equivalent point transformed as shown in this diagram:

The new point has the same Y value, but the new X value depends on the Y value. The points {0, 1}, {0.5, 1}, and {1, 1} are all transformed to {0.5, 1}.
I don't know the name for this type of transform, so I've temporarily referred to it as a 'gore transform' - gores being related to the interrupted map projections where the location's coordinates are transformed onto tapering flaps. (Y is latitude and X is longitude.) I've spent hours looking with delight at the map projection pages (especially the wonderful Progonos site), but haven't yet located a useful function/formula.

redpajama_set_name: RedPajamaStackExchange


text:
Culture July 22, 2018
Stealing The Show: How Anne Hathaway Learned to Let Go of Her Anger
by Justine Harman
After being scrutinized, critiqued, even hated, Anne Hathaway put up a few walls to protect herself. Now the Ocean's 8 star is ready to tear them down
There aren't many spots like Cafe Luxembourg in New York City. It's the kind of place where well-worn barstools and hang-your-own coat racks add to its sophistication. The kind of place where you can tell the host you are meeting Anne Hathaway and she'll shrug and say, "Oh, she's been here a million times." The whole vibe is high-end casual, Left Bank meets Upper West Side. And indeed, when Hathaway walks in, there is no noticeable change in the room. No one cranes their neck or pulls out an iPhone. Maybe the other patrons have seen the Oscar winner here a million times. Or maybe everyone is French.
In the five years since #HathaHate – the 2013 media storm that erupted after Hathaway won the best supporting actress Oscar for her turn as Fantine in Les Misérables and was deemed too earnest, too jazz-hands, too something – the 35-year-old has emerged with a simple realization: It doesn't matter whether people like her, because she really likes herself. "I'm interested in living a very honest life. I don't know if that makes me a boring person. I don't really care if it does," she says. "It would be easier if I was better at being misleading or sneaky. I know how all that stuff works. I'm not a naive idiot. I know if I was a little bit mean to everybody, people would be like, 'Oh, she's fun. I like her.' And I'm just like, 'Can we try to tear each other apart?'"
Anne – or Annie, as she tells me to call her – was born in Brooklyn. When she was six, her parents, Gerald, a labor attorney, and Kate, a former actor, moved the family to Millburn, New Jersey. She has two brothers. Owning your truth became something of a family motto. "When I was a teenager and life was starting to happen, my dad said to me: 'Three promises. Don't get a tattoo until you're 23. Don't get onto motorcycles' – we have a family history of motorcycle accidents – 'and don't lie,'" she says. "I took that in really, really deep." (She did get a tattoo, a small cursive M on the inside of her left wrist, when she was 28.)
Anne Hathaway wears Dress, Lacoste; Scarf, Rockins; Earring, Céline. Photographed by Billy Kidd
After high school, Hathaway went to Vassar College for a bit and then New York University's prestigious Gallatin School of Individualized Study but never graduated. She got famous instead; after the short-lived Fox series Get Real, she landed The Princess Diaries. She made the A-list via the critically loved Brokeback Mountain and the commercial hit The Devil Wears Prada.
She also got burned. In addition to the post-Oscar backlash, there was the ex who stole more than US$6 million from investors during their four-and-a-half-year relationship. She rebounded and married jewelry designer and producer Adam Shulman in 2012. Four years later they had a son, Jonathan. Motherhood, she says, was a healing experience. "How Johnny is going to feel about himself will have so much to do with how I feel about myself in front of him," she says. "If I'm feeling insecure, I am very careful that I don't show that. But I also work really hard to acknowledge that place, give room for that place, and then release myself from that place. I'm more loving now, and that includes toward myself."
Through it all she kept working; Hathaway has appeared in more than 35 films. "I was very deliberately, in my twenties, trying to do as many different types of roles as I could with different directors, just to become a better actor," she says. "If there was a goal, it was always to just play parts until people were like, 'Oh, she can pull that off.'" Things didn't always work out perfectly – and she's witnessed the abuse of power firsthand. "I've had a 20-year career and I've had some really, really bad experiences," she says, "but I've had a lot of great ones too – with members of both genders." I can tell she's hesitant to go there on the bad times. "While they do not begin to approach the atrocious, galling stories others have shared in recent months, I have had negative on-set experiences, some of a sexual nature," she tells me later. "Some are from the beginning of my career, some are more recent – all are unacceptable."
Hathaway is happier talking about the positive experiences, and what we can learn from them. "There have been many; Serenity with director Steven Knight was one. He distinguishes himself by always, in every scenario, behaving as though we were two human beings trying to tell the same story. I never felt there was a power dynamic at play; rather, it was a respectful, artistic collaboration. The same for Matthew McConaughey, Jason Clarke, and the crew." She's using those experiences – and the conversations they beget – to inform her work with Time's Up. Personally knowing that a film set could be either harmful or harmonious was one reason she got involved, she says, "But it's not just being an actor. Being a 35-year-old woman who has experienced the everyday, abusive imbalance of the world also made me want to be a part of a movement for change… I know the world can be far worse for others than it has been to me, but I suppose, like most everyone who has been hurt, I want to protect others from going through the worst of what I experienced. I want to help make what I consider the best of my experiences to be the norm, as it always should have been." She's thought a lot about how the abuse could run so deep within the industry. "I think that there's got to be some guys who get high off the power. But in a lot of cases, it's an echo chamber. Most guys have never seen anything different."
Hathaway is pushing herself to see differently. "One thing that I'm confronting about myself is my own bias and the fact that I aspired to be a part of this industry without having to imagine what it could look like if everybody was in it. But if change is going to happen, we have to get uncomfortable," she says. "Somebody really brilliant once told me that prophecy is not handed down by DNA. We learn by telling each other stories." And as she segues into producing, she hopes to become a different kind of storyteller. "I'm working on something right now, and I really hope it gets made," she says, with more than a hint of irony creeping into her voice. "It's about multiple versions of truth, and whether or not you can be judged on a moral level by someone who's never imagined what it's like to be you."
Anne Hathaway wears Coat, Hoodie, Pants, Céline; Jacket (around waist), Topshop; Ring, Kathleen Whitaker; Gold ring, Eye M by Ileana Makri. Photographed by Billy Kidd
Right now, however, she's focused on the release of Ocean's 8. Hathaway plays Daphne Kluger, an actor who may or may not be in on a diamond robbery with Sandra Bullock, Cate Blanchett, and Rihanna at Vogue's annual Met Ball. It's downright satisfying to watch a group of smart women pull off the heist and not just be the arm candy. I ask whether it feels surreal to play Famous Person Attending Met Ball, an event she's attended many times herself. "I was so excited to get invited onto the team," she tells me. "It was a big, out-of-nowhere offer. I was just like, 'Do not embarrass yourself in front of your heroes. Do not embarrass yourself.'" She stops talking here, as if to silence critics – including herself.
It's the kind of purposeful self-reorienting you might expect from anyone who has been so scrutinized. I bring up the workout video she recently captioned on Instagram: "I am gaining weight for a movie role and it is going well," which was her way of controlling the fake news cycle. "I didn't feel like dealing with the pregnancy rumors," she says. "I find it bizarre that there's a storm to get ahead of, but I have a history of being shamed and humiliated, for a lot of different reasons." Her colleagues have seen her grapple with barriers too. "Sometimes she'll come out with a really good joke, and I'm like, 'You should tweet that or put that on Instagram, Annie!' And she's like, 'I can't,'" says Rebel Wilson, her costar in the upcoming comedy The Hustle. "I guess a lot of people don't know that side of her."
In our afternoon together I see glimpses of that Anne Hathaway. She slurps a mean oyster. She gets hives on her neck when she's nervous and is as comfortable name-checking Ryan Gosling as she is David Foster Wallace and feminist author Rebecca Solnit. She keeps a ridiculous photo on her phone of when she was "ready to go into labor" and Barbra Streisand rubbed her belly. "I don't have strangers in my life. People don't treat me like a stranger very often," she says. "I've always been really good at diving in. And while sometimes I wish there was a little more distance, I actually really like being able to go there with people right away."
And like all of us, sometimes she gets really annoyed. "I have a history with rage," Hathaway says. "I used to do this thing where I was like, 'I'm nice 29 days out of 30, and then I give myself complete permission to be mean to anyone, about anything.' I realized that if I could actually move away from the judgment and deal with my emotions in the moment, I didn't actually need the extra day. Rage doesn't lead you to a place of peace. And for me the goal is not happiness. The goal is peace."
But peace, like success, is more of a journey than a destination. "Cate Blanchett once said something like, 'I don't ever want to feel that I've arrived, because as soon as you arrive, you have to leave,'" she says. "That's the way I've always felt about it. I'm not interested in getting to the top of the mountain. I hope that, at the top of the mountain, there's just another mountain."
Anne Hathaway wears Jacket, Dress, Shoes, Louis Vuitton; Pants, Juicy by Juicy Couture; Earring, Ben-Amun by Isaac Manevitz; Ring, Aurélie Bidermann. Photographed by Billy Kidd
In the end, all this self-analyzing has just made her better – a better mom, a better actor, a better human. "Anne is pretty darn self-aware," says Ocean's 8 director Gary Ross. "The thing that struck me most about working with Anne is her bravery. She commits fully to the character, with bravado and no self-protection – understanding that a great performance is never a timid performance."
We pay the check and walk the two long blocks to the uptown apartment where she and her family live when they're not in Los Angeles. Right before she heads back to her life full of fame and contradictions and screaming toddlers and self-criticism, we hug. It's a wrap-you-up, close-friends kind of hug, not timid at all.
Now Read: 9 Ways The Fashion Industry Embraced Inclusivity in 2018
Photography: Billy Kidd
Style: Natasha Royt
Hair: Orlando Pita
Makeup: Gucci Westman at Home Agency
Nails: Casey Herman at The Wall Group
Set design: Bette Adams at MHS Artists
Production: Hudson Hill Production
Top image: Blazer, Pants, Eckhaus Latta; Hoodie, Ivy Park; scarf (worn as belt), Rockins; Earring, Ring, Kathleen Whitaker; Pearl earring, Sarah & Sebastian; Gold ring, Eye M by Ileana Makri; Bracelets (worn throughout), Hathaway's own
The Bicester Collection Announces the 'Unlock Her Future Prize' to Empower Female Social Entrepreneurs
Your First Look at Gigi Hadid's New Job as Co-Host and Judge of Netflix's Next in Fashion
Julia Fox's TikTok Apartment Tour is Dividing the Internet
Oscar Nominations 2023: See All Nominees Here

redpajama_set_name: RedPajamaCommonCrawl


text:
Celtics Rumors: Latest Buzz on Kemba Walker, Al Horford and More
Steve Silverman@@profootballboyTwitter LogoFeatured ColumnistJune 26, 2019
Kemba Walker may be in the Celtics' offseason plans.Duane Burleson/Associated Press
Everything was set up for the Boston Celtics to dominate the Eastern Conference this season.
When LeBron James left the Cleveland Cavaliers and the Celtics had their full complement coming back, led by All-Star guard Kyrie Irving and the return of Gordon Hayward to (nearly) full fitness, it seemed the path was wide open for Boston.
However, reality turned out to be a a slap in the face for the Green, as they were never more than lukewarm in the regular season and finished fourth in the Eastern Conference standings.
After a sweep of the Indiana Pacers in the opening round of the playoffs and a blowout of the Milwaukee Bucks on the road in Game 1 of their second-round series, the Celtics fell flatter than three-day-old ginger ale.
Milwaukee won the next four games and sent the Celtics home with a whimper. There were plenty of complaints during the season about Irving not being the leader they needed and Hayward having a difficult time readjusting following his gruesome ankle injury.
Few teams were more disappointing than Boston, and with free agency approaching, it appears players such as Irving, Al Horford and others could leave.
While those are key issues, the team will have money to spend on free agents if "The Departed, Part II" plays out in Boston. One of those free agents could be superstar Kemba Walker of the Charlotte Hornets.
Marc Stein of the New York Times noted the Celtics are becoming players in the Walker market:
Marc Stein @TheSteinLine
The Celtics, I'm told, are emerging as a stealth suitor for Charlotte Hornets free agent Kemba Walker
The 28-year-old is a three-time NBA All-Star, and he averaged 25.6 and 5.9 assists for the Hornets in 2018-19. If they lose Irving, he would be a wonderful player to make up for the loss.
While Irving seemed unhappy much of the time, Walker would have a clean slate and would bring his sensational talent to the team.
The thought of losing Horford is fairly devastating to the Celtics, and that seems like it will be a reality since he decided not to take his player option for the 2019-20 season.
The 33-year-old has been an integral part of the Celtics since joining in 2016-17 after nine seasons with the Atlanta Hawks. He averaged 13.6 points and 6.7 rebounds per game while shooting 53.5 percent from the floor, and he also has helped hold the team together during its most difficult moments.
Stein tweeted that "numerous teams" believe a four-year, $112 million contract will be offered to Horford at the start of free agency. While he did not specify a team that would be offering that deal, he did say the Dallas Mavericks do not appear to be the team.
It should be noted Horford danced with the Houston Rockets before signing with the Celtics in 2016.
Irving appears to be all but officially gone at this moment. Justin Leger of NBC Sports pointed out he didn't like living in Boston, had problems with general manager Danny Ainge and head coach Brad Stevens, and he also had issues with a couple of his teammates.
With just days to go before the start of free agency, B/R Betting listed the Brooklyn Nets as the favorites to land Irving at -400, while the Los Angeles Lakers were second at +300 and the New York Knicks third at +1000:
B/R Betting @br_betting
The Nets are huge favorites to land Kyrie 👀 (via @CaesarsPalace) https://t.co/lew3eKg0nz
The Celtics weren't even listed in the graphic.
NBA Reddit Flames How Awful Hornets Have Been 😬
It's been a rough time for Hornets fans
Tacko Fall Is a 'High Priority' for Celtics
via NBC Sports Boston
Kemba Got Antoine Walker's Blessing to Wear No. 8
Bruno Manrique
via ClutchPoints
8 Takeaways from Kemba, Enes Kanter Introductions
BostonGlobe.com
via BostonGlobe.com


text:
namespace carto {

    bool NetworkUtils::GetHTTP(const std::string& url, std::string& responseString, bool log) {
        std::map<std::string, std::string> requestHeaders;
        std::map<std::string, std::string> responseHeaders;
        return GetHTTP(url, requestHeaders, responseHeaders, responseString, log);
    }

    bool NetworkUtils::GetHTTP(const std::string& url, std::shared_ptr<BinaryData>& responseData, bool log) {
        std::map<std::string, std::string> requestHeaders;
        std::map<std::string, std::string> responseHeaders;
        return GetHTTP(url, requestHeaders, responseHeaders, responseData, log);
    }

    bool NetworkUtils::GetHTTP(const std::string& url, const std::map<std::string, std::string>& requestHeaders, std::map<std::string, std::string>& responseHeaders, std::string& responseString, bool log) {
        std::shared_ptr<BinaryData> responseData;
        bool success = GetHTTP(url, requestHeaders, responseHeaders, responseData, log);
        if (responseData) {
            responseString = std::string(reinterpret_cast<const char*>(responseData->data()), responseData->size());
        } else {
            responseString.clear();
            if (success && log) {
                Log::Warn("GetHTTP: Empty response data");
            }
        }
        return success;
    }

    bool NetworkUtils::GetHTTP(const std::string& url, const std::map<std::string, std::string>& requestHeaders, std::map<std::string, std::string>& responseHeaders, std::shared_ptr<BinaryData>& responseData, bool log) {
        HTTPClient client(log);
        try {
            return client.get(url, requestHeaders, responseHeaders, responseData) == 0;
        }
        catch (const std::exception& ex) {
            if (log) {
                Log::Errorf("GetHTTP: Exception: %s", ex.what());
            }
        }
        return false;
    }

    int NetworkUtils::StreamHTTPResponse(const std::string& method, const std::string& url, const std::map<std::string, std::string>& requestHeaders, std::map<std::string, std::string>& responseHeaders, HandlerFunc handler, std::uint64_t offset, bool log) {
        HTTPClient client(log);
        try {
            return client.streamResponse(method, url, requestHeaders, responseHeaders, handler, offset);
        }
        catch (const std::exception& ex) {
            if (log) {
                Log::Errorf("StreamHTTPResponse: Exception: %s", ex.what());
            }
        }
        return -1;
    }

    int NetworkUtils::GetMaxAgeHTTPHeader(const std::map<std::string, std::string>& headers) {
        for (auto it = headers.begin(); it != headers.end(); it++) {
            if (boost::iequals(it->first, "Cache-Control")) {
                std::vector<std::string> values = GeneralUtils::Split(it->second, ',');
                for (auto it2 = values.begin(); it2 != values.end(); it2++) {
                    std::string value = boost::trim_copy(*it2);
                    if (boost::iequals(value, "no-cache") || boost::iequals(value, "no-store")) {
                        return 0;
                    }
                    if (boost::iequals(value.substr(0, 8), "max-age=")) {
                        std::string maxAge = boost::trim_copy(value.substr(8));
                        std::string::size_type pos = maxAge.find(' ');
                        if (pos != std::string::npos) {
                            maxAge = maxAge.substr(0, pos);
                        }
                        try {
                            return boost::lexical_cast<int>(maxAge);
                        }
                        catch (const boost::bad_lexical_cast&) {
                            Log::Errorf("NetworkUtils::GetMaxAgeHTTPHeader: Invalid max-age value: %s", maxAge.c_str());
                            return -1;
                        }
                    }
                }
            }
        }
        return -1;
    }

    std::string NetworkUtils::URLEncode(const std::string& value) {
        std::ostringstream escaped;
        escaped.fill('0');
        escaped << std::hex;
        for (auto it = value.begin(); it != value.end(); it++) {
            char c = *it;
            if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '-' || c == '_' || c == '.' || c == '~') {
                escaped << c;
                continue;
            }
            escaped << '%' << std::setw(2) << int((unsigned char)c);
        }
        return escaped.str();
    }

    std::string NetworkUtils::URLEncodeMap(const std::multimap<std::string, std::string>& valueMap) {
        std::string encValueMap;
        for (auto it = valueMap.begin(); it != valueMap.end(); it++) {
            if (!encValueMap.empty()) {
                encValueMap += '&';
            }
            encValueMap += URLEncode(it->first);
            encValueMap += "=";
            encValueMap += URLEncode(it->second);
        }
        return encValueMap;
    }

    std::string NetworkUtils::URLDecode(const std::string& encValue) {
        std::string value;
        for (std::size_t i = 0; i < encValue.size(); i++) {
            char c = encValue[i];

            if (c == '%' && i + 2 < encValue.size()) {
                int n = 0;
                sscanf(encValue.substr(i + 1, 2).c_str(), "%x", &n);
                value += static_cast<char>(n);
                i += 2;
                continue;
            }

            if (c == '+') {
                value += ' ';
                continue;
            }

            value += c;
        }
        return value;
    }

    std::multimap<std::string, std::string> NetworkUtils::URLDecodeMap(const std::string& encValueMap) {
        std::multimap<std::string, std::string> valueMap;
        std::stringstream stream(encValueMap);
        std::string encKeyValue;
        while (std::getline(stream, encKeyValue, '&')) {
            std::string::size_type pos = encKeyValue.find('=');
            if (pos == std::string::npos) {
                valueMap.insert({ URLDecode(encKeyValue), std::string() });
            } else {
                valueMap.insert({ URLDecode(encKeyValue.substr(0, pos)), URLDecode(encKeyValue.substr(pos + 1)) });
            }
        }
        return valueMap;
    }

    std::string NetworkUtils::BuildURLFromParameters(const std::string& baseURL, const std::map<std::string, std::string>& params) {
        return BuildURLFromParameters(baseURL, std::multimap<std::string, std::string>(params.begin(), params.end()));
    }

    std::string NetworkUtils::BuildURLFromParameters(const std::string& baseURL, const std::multimap<std::string, std::string>& params) {
        std::string url = baseURL;
        if (!params.empty()) {
            url += (url.find('?') == std::string::npos ? '?' : '&');
            url += URLEncodeMap(params);
        }
        return url;
    }

    std::string NetworkUtils::SetURLProtocol(const std::string& url, const std::string& proto) {
        std::string::size_type pos = url.find("://");
        if (pos == std::string::npos) {
            Log::Errorf("NetworkUtils::SetURLProtocol: Could not detect protocol");
            return url;
        }
        return proto + url.substr(pos);
    }

    std::string NetworkUtils::ParseURLHostName(std::string url) {
        // Remove http://, if exists
        std::size_t index = url.find("://");
        if (index != std::string::npos) {
            url.erase(0, index + 3);
        }

        // Remove everything after first /, if exists
        index = url.find("/");
        if (index != std::string::npos) {
            url.erase(url.begin() + index, url.end());
        }

        // Remove port
        index = url.find(":");
        if (index != std::string::npos) {
            url.erase(url.begin() + index, url.end());
        }

        return url;
    }

    int NetworkUtils::ParseURLPort(std::string url) {
        // Remove http://, if exists
        std::size_t index = url.find("://");
        if (index != std::string::npos) {
            url.erase(0, index + 3);
        }

        // Remove everything before :, if exists
        index = url.find(":");
        if (index != std::string::npos) {
            url.erase(0, index + 1);
        } else {
            return 80;
        }

        // Remove everything after first /, if exists
        index = url.find("/");
        if (index != std::string::npos) {
            url.erase(url.begin() + index, url.end());
        }

        return std::atoi(url.c_str());
    }

    std::string NetworkUtils::ParseURLPath(std::string url) {
        // Remove http://, if exists
        std::size_t index = url.find("://");
        if (index != std::string::npos) {
            url.erase(0, index + 3);
        }

        // Remove everything before first /, if exists
        index = url.find("/");
        if (index != std::string::npos) {
            url.erase(0, index);
        }

        return url;
    }

    std::string NetworkUtils::CreateServiceURL(const std::string& serviceTemplate, const std::string& source) {
        if (source.find("://") != std::string::npos) {
            return source;
        }

        std::map<std::string, std::string> tagValues = { { "source", URLEncode(source) } };
        return GeneralUtils::ReplaceTags(serviceTemplate, tagValues, "{", "}", true);
    }

    std::map<std::string, std::string> NetworkUtils::CreateAppRefererHeader() {
        std::map<std::string, std::string> headers;
        headers["Referer"] = "app://" + URLEncode(PlatformUtils::GetAppIdentifier());
        return headers;
    }

    NetworkUtils::NetworkUtils() {
    }

}

redpajama_set_name: RedPajamaGithub


Charming and beautiful with a spectacular view of the swimming pool and hills, this resort is located within the Aroona Plaza with shopping and restaurants just a few metres away. Beautiful Karon Beach and the crystal-clear waters of the Andaman Sea lie across the road. The resort is surrounded by a lush, tropical landscape.
184 rooms, each with a balcony.
A 10-minute drive to Patong, 20-minute drive to Phuket town and 50 minutes from Phuket International Airport.


text:
Fleets should adopt drug driving risk policies
Fleets need to consider adopting more stringent drug driving policies as new figures suggest there is a growing issue among younger drivers, according to a new RAC survey. The study of more than 1,000 motorists revealed a rise from 5 per cent to 9 per cent among 17-24 year olds who admitted to driving under the influence of illegal substances over the last 12 months. The research is aptly timed following the Government's recent announcement that drug driving will be tackled severely within the Crime, Communications and Court bill, whilst handing police the authority to carry roadside drugalysers to catch law breakers. The drugalyser is designed to analyse motorists' saliva for levels of drug use. Drivers that fail the initial roadside test will then be tested with a more thorough machine at a police station, with penalties for drug driving expected to reach up to six months in prison and fines of up to £5,000. Neville Briggs, managing director of CFC Solutions, believes these measures are likely to kick fleets into action to implement a zero tolerance policy as part of its risk management policies. "Action in this area is long overdue from a general road safety point of view and these latest figures from the RAC, combined with the Government's announcement, should prompt fleets that have not already taken action to make drug driving part of their risk management policies," he said. "For too long, this has been an area of risk management characterised by a certain amount of cloudiness and elasticity because the law and its enforcement were themselves unclear. That situation has changed with the arrival of the new law. "Now, it should be made clear to employees that recreational drug use and business driving will be treated in a zero tolerance manner, and also that any doubts surrounding prescribed or over the counter medication should be raised so that further advice can be sought. Drivers need to take the subject seriously." For fleets aiming to keep their drivers on the move it is important to have a reliable and cost-effect fleet refurbishment service to rely on. At IT Fleet Automotive we can provide high-quality restoration to fleet cars. Vehicles are checked and refurbished on site with our professionals using industry leading techniques and technology to keep your fleet on the road. Give our experienced team a call today on 01473 313057 to discuss your requirements or drop us a line using our online enquiry form to get the ball rolling.


text:
Scottish tenor Thomas Walker has already established himself as a notable talent with his flexible and easily-produced tenor. With a wide repertoire of music spanning from Monteverdi to Janáček, he has gained particular acclaim for his interpretations of baroque music having appeared as a featured soloist with the Dunedin Consort, the Gabrieli Consort, the Berlin Akademie für Alte Musik and Al Ayre Español. His operatic repertoire includes Rossini's Almaviva, Don Ottavio, Pelléas and Platée. I caught up with Mr Walker between performances in ENO's The Indian Queen and rehearsals for Platée in Stuttgart.
Thomas Walker ©Robert Workman
Mr Walker, you are currently performing in a production of The Indian Queen at ENO. This is quite a different take on the piece than one might have expected. Tell us a little more about this production.
A bit of context about this is that it's not strictly an opera – it's a masque, written in a time when opera was prohibited. Peter Sellars has taken John Dryden's original text and added some spoken dialogues based on Rosario Aguilar. He has also changed some of the text by adding some character names, omitted some arias and added others to make a narrative for this story and his interpretation of that piece. I think it works really well as a story. There has been the inevitable mixed reception in the press and online forums like Twitter – some people have absolutely loved it, others quite the opposite. I think that's the point about art, that it should create a discussion and get people talking. It shouldn't be 'easy' or else what is the point in what we do? I've really enjoyed working with Peter Sellars, he's quite a deep man – in a good sense – and I enjoy discussing things and working on that kind of level. He sees a lot of sadness in the world and I think that this comes through in a lot of his productions. In the few that I have seen, there's a lot of sadness, a lot of honesty, a lot of truth, there's nothing superfluous. The Indian Queen is a real ensemble piece. We did a lot of rehearsing as a group, more akin to theatre work than to the rehearsals one sees in a mainstream opera house, which meant we really bonded as a cast. We were all also in the same age group, relatively young I suppose, so we had plenty of social time together after rehearsals.
As Don Pedrarias in ENO's The Indian Queen ©Robert Workman
You are also working simultaneously in Stuttgart in a revival of Calixto Bieito's production of Platée. You of course premiered that particular staging and it's a work that you have also performed here in London, in concert. What are the differences for you of working in a new production and returning to revive it later?
The main difference is one's colleagues. This is the second revival of this production and we have mostly the original cast back this time. However it was a good few years ago that we premiered it, so things have changed somewhat. For example, nothing is ever perfect, so say there was a section that never really worked, and in the first revival we changed it, but now we have the original cast member back, so we have to alter it back, or create something else. That's the main thing, was it a directorial choice to have something like that, or was that because of the talents of that particular singing actor? Stepping into a role created by someone else, is very tricky, especially a Bieito production where energy and physicality play a huge part. You can't expect two people to have the same physicality, so things must change. I think if I were doing this particular production for the first time, in its third revival, it would be quite difficult to get a handle on what Calixto wanted and what he expected and what was Thomas Walker, and what he had chosen because of his own set of talents and shortcomings – they are a part of the decision making too. However since I have performed every performance of this production I suppose I am in the position of knowing exactly what happens when and why.
I'm lucky enough to retain direction, so after a couple of days I can do exactly what I did years previously. I have good spatial recall, which is helpful and can remember what others in my scenes are supposed to be doing, so it's an easy process for me to do a revival of something I created. Also, in this particular production, I was left alone to do quite a lot of things myself. I had to do quite a lot of improvising in reaction to what other people were doing on stage, and I tend to comment on the action, in a true 'commedia dell'arte' style, so I interact with the audience, sometimes go into the audience, sometimes sit on the side and watch it with them. This sort of thing is all free – it changes on the dynamic of the audience reaction. It has to be fluid at all times, that's one of the best parts of the Platée that Calixto created. Would it be useful to have the original director present? I think it's always good to have the director there, as they are the only one who can truly change their production, make new decisions and alter things. We don't really have the right to take apart someone's work, so we have to stick to the parameters of the show, but have the same improvised spirit continuing throughout.
There is however a lot of pathos involved in this role. It's a comedy role but the comedy comes from actually having a little bit of pity for the person, feeling sorry for them, and also the ridiculous situations that they get themselves into. The story of Platée isn't a funny story, this is somebody who wants to fit into society, who is rejected by society and who ultimately is humiliated by the people who pretended to accept her. The ending is truly humiliating, and everyone, including the audience knows, this is going to happen – there are a lot of asides that Platée doesn't hear for example – so it isn't some hilarious pantomime ending. I think the audience have real pity and perhaps a little bit of shame at what happens to this person that they were so enjoying laughing at. Platée for me is truly an everyman, she wants to be loved and to be accepted and to be all those things we all aspire to be, but she is ridiculed in the most brutal way.
As Platée © A.T. Schaefer / Staatsoper Stuttgart
How do you find working with Bieito as a director?
I really loved working with him. Calixto is quite an intense man, much like Sellars in fact. He sees a lot of pain in the world, and in this production the emotional height can turn on a dime from hyper sad or angry, to very lighthearted. As I said previously, Platée is very funny but it's also painful, he sees a lot of grief in it, and for me that was a relief. I had made the choice that I didn't want to be some panto dame, with huge comedy tits, totally unconvincing as a woman and constantly making extreme vocal effects and I was glad that Calixto didn't want that for his opera either. Of course there are moments of blatant 'drag' buffoonery, and playing to the audience but working with Calixto, and our conductor, Christian Curnyn – who I have to add was as instrumental in some of the shenanigans on stage as we the singers were – was truly collaborative and there was never any struggle between stage and pit, which was a dream scenario for my first outing of this role. But back to your question, Calixto isn't actually a very loud person, he speaks quite intimately to you – he never really shouts at anyone, he doesn't ever bark, he sits and watches. He'll come and say things to you on your own, he likes personal time. I find him a positive energy, you feel safe, you feel that you can do what you wanted and it was never, ever wrong.
He manages to get his singers, even the choruses, to do the most incredible things
Yes, outrageous things sometimes, things you would never imagine they would do. I think he achieves that from day one. I think he sees how far you will go and then he sets his parameters. That's quite clever psychologically, isn't it? You push someone to see how far they go and you see how far they go and then you build something from that rather than letting them get there slowly. You might never get there I think. For example my first morning on stage, I was semi-naked with my penis out, (that's remained part of the production) so there was no 'easing' me into the role, we just went for it.
Of course Platée is quite a high role, how do you find the vocal writing for that?
I don't find it too difficult singing high in that way, it's something that I've slotted in to. I wouldn't say that my voice is the most haute-contre type voice, in that it's a certain style singing haute-contre. Very often you don't take all the weight of the voice to the top in the same way as say a Rossini role for example. The tenor that Platée was written for, Pierre Jélyotte, was prized for the fullness of his sound, the beauty of his voice, his superb acting and this power that he had at the top of his voice, he created a lot of the Gluck tenor roles. So it's reasonable to sing Platée in a fuller way. We also do it at modern pitch so there's that extra tone, which can be gruelling at times in such a high energy/physical production, but once you get going you can pace yourself and you can work out how you're going to do it night on night. It's different when you have a high role that's very concentrated in small bits because you have to warm yourself up in your dressing room and then go on and just deliver it, like the Italian tenor in Der Rosenkavalier which I have also performed. That's grating on the nerves a little, whereas I think because I'm on the stage the whole time in this, if I think I'm getting tired I can just negotiate that within the opera. There's a lot of business that I have to do in Platée which takes my mind off the singing – loads of things to do, lots of things to concentrate on, costumes to deal with, trying to be funny – so that takes your mind away from the singing.
As Pelléas
Tell us about the language, how do you find singing in French?
I actually quite like it. A lot of singers find it difficult, it's a tricky language, but the voice placement for the nasal sounds can feel like the voice is a little trapped, it doesn't feel as free or open throated as singing in Italian would. I'm lucky enough to be a good mimic and I can sound idiomatic with languages quite easily. I think it's a pretty important skill for a singer to be able to mimic the sound and to be able to retain it. The French repertoire was always something that was on the cards for me when I was a student. The colour palette of the language and aesthetic of the repertoire suits the sound that I make. However a lot of French rep is quite heavy, so the baroque route suits me well for the time being.
One of the things with being a singer is that often you need to be in two places simultaneously. How are you finding being in rehearsals in Stuttgart one day and then performing in London the next?
It's not untypical; I've certainly done it quite a few times. I think the biggest challenge is plain old tiredness. I don't mean to complain, I have a nice life, but it's tiring. This week I have to spend quite a lot of it sleeping on planes, or getting 4 hours of that sort of fitful sleep that you don't really know where you are, before a mad dash to the airport. This morning, here in London, when I went for a coffee I started to speak to the waitress in German, so I am clearly not coping with sleep deprivation very well! I do quite a lot of concerts and getting into the busy seasons around Christmas or Easter in particular, sometimes I've been horribly busy with a flight every day and then a concert that evening. It's nice to have a full diary and it's amazing that people want you, and that they accept that you fly in on the day. However I wouldn't like to make a habit of this in the long term because it's stressful and your body's tired. I get stressed about being late – you're always worried about the flight being delayed and then missing the concert.
As Don Ottavio
You started off as a tuba player, how do you feel that this has affected your development as a musician?
I think I performed many more pieces and different genres of music as a brass player than I might ever sing. As a brass player, especially playing contemporary music for tuba, it's a good way to learn accurate, quick negotiating of difficult scores, but that talent really is 'use it or lose it' and I feel that I've lost it a little bit. These days I sing tunes, but I have retained the sight-reading for the most part, although I do less and less of it. I think now I'd have to mark up beats in a brass score whereas before it didn't use to be an issue. I also used to be a lot heavier back then, I was quite a big person, so when I started being a singer I had very good breath control and my voice was heavier then as well. Bigger people have more muscle, so it stands to reason that when I was double the size I am now, I was much stronger, and could use it in my singing. It was also a lack of technique to some extent. I had the strength to just power through some things. These days I use a more, how shall I put it, refined way of singing. I think that's the kindest way to put it. People imagined I was going to go into more heavy tenor rep, it was quite a dark, heavy voice and then I lost weight and it changed. My voice started going up gradually, it's gone higher and higher, which has served me well, but it certainly wasn't what I expected. It wasn't easy for me singing high when I first started being a singer. I think it's not just understanding how you sing technically, but it's also having the confidence or the bravery to do it and rely on it. I think that's a big part of it. It's very vulnerable, it's the bit that's least likely to work for you.
You mentioned playing a wide repertoire as a brass player and something that comes up often is the idea of performing in a stylistically appropriate way. You have quite a massive range in your repertoire, going from Monteverdi up to Janáček and beyond. Tell us a little about your approach to the style of the music you're performing.
I think I try to be appropriate to the music I am singing. I have worked with people who've done a lot of French baroque and they'll correct you, or the conductor will tell you what's what, when to do it, and why do it. I listen to other singers a lot, I enjoy hearing others, and I've been lucky enough to work with some who are more experienced in the style. It's just about having an ear for what sounds stylish, back to that point about mimicking. I certainly wouldn't sing Purcell or Rameau in the same way I would sing a Janáček piece. It isn't wholly to do with vibrato, but it's a part of it, I think it's about making a conscious decision to alter your vibrato occasionally, to maybe not sing through a phrase with a constantly spinning vocal line, to make decisions based on text, not voice. that's the main one. Taking vibrato out of the voice does feel like you're holding your instrument because you're trying to stop it vibrating so much, but that doesn't mean it's not healthy singing. Mostly it's musical – a violinist would do it instinctively, a brass player will do it instinctively and that's where it comes from I think. My feeling is that's why I've a wide repertoire, because I can be appropriate to each style and I think that goes back to your previous question because when I was an instrumentalist I had to do that sort of thing constantly, to be stylistically appropriate.
In il ritorno d'Ulisse in patria © Robert Workman
We've talked about how you started as a singer, we've talked about what you're working on right now, how about where you're going. What can we expect from you in the future?
I have quite a busy, varied summer coming up. I'm doing a concert tour where we're performing Gesualdo and Arvo Pärt with a viola da gamba. I'm at the Edinburgh Festival doing some Beethoven and I'm also doing a BBC Prom. It's been a while since I've been at the Proms so I am really looking forward to it. There's a concert we're doing of three Bach Magnificats by JC, JS and CPE Bach and we'll be recording them with Arcangelo for Hyperion. It'll be interesting to hear grandfather, father and son all together, different generations, same text. I'm also singing Arnalta the Nurse in L'incoronazione di Poppea in Venice which will be really interesting. Then in the autumn I'll be returning to La Monnaie with René Jacobs to sing an opera by Gassmann. I really like working with René Jacobs. I find he's always amazingly well-prepared. He's the kind of conductor who will tell you about ornamentation and why you should do what. He's always got a book on the go in rehearsals which he'll dip in and out of, such as an essay on performance practice or the context of the opera. There's certainly never a sense of going through the motions with him, he does it because he loves it.
www.thomaswalkertenor.com
Thomas Walker on Facebook
@tomwalkertenor
Published by operatraveller
Operatic wanderer. Flâneur lyrique.	View all posts by operatraveller
Previous Casta Diva: Norma at the Palau de les Arts
Next On Beauty: Platée at the Oper Stuttgart


Learn change management skills to mange and lead effectively.
Leading Change addresses the key issues managers face in a dynamic environment. Whether adopting new technology or adapting to a drastic shift in an organization's core focus, managers play a fundamental role in effecting changes.
This course is self-paced and online. You will have access to this course for 60 days. Upon successful completion, you will receive a certificate of completion from One Hour Courses.
Target Audience: This course is designed for mid- and entry-level professionals, managers, and those interested in effective leadership.
Successful Completion Requirement for IACET CEU: Learners must score at least 70% on the course self-assessment to receive 0.1 IACET CEU and 1 HRCI Specified - Strategic Business Credit Hour.


text:
Home » Tamil » News » AR Murugadoss about Rakul Preet's role in Spyder: She will be there where audiences require relief
AR Murugadoss about Rakul Preet's role in Spyder: She will be there where audiences require relief
ARM said that Rakul Preet does not have too many scenes in Spyder.
By Roktim Rajpal | September 20, 2017 07:18 pm | 6,261 reads | 1 comments
The lovely Rakul Preet will soon be making a comeback to Tamil cinema after nearly three years with the eagerly-awaited 'Spyder'. And, needless to say, this has created quite a buzz amongst fans.
During a recent interaction with a leading daily, director AR Murugadoss opened up about Rakul's role in the film and said that she will provide ample entertainment to the audience, However, at the same time, he stressed that she does not have a very long role in 'Spyder'.
"She has an important role. But if you ask me about the screen space, it will be on an entertainment level only. She will be there where audiences require relief or entertainment." he added.
Besides this, ARM also added that he does not believe in restricting heroines to 'eye candy', however, everything depends on the script in question.
"When I did Ghajini also, the script demanded a strong character to the heroine. It all depends on the script. I do understand the claim though; I will change slowly in the future," he added.
In case you did not know, 'Spyder' is touted to be a spy-thriller and features Mahesh Babu in the role of a spy. Shot simultaneously in Tamil-Telugu, it is the first straight Tamil film of Prince's career and will hit screens on September 27.
On a related note, this will be Mahesh Babu's first release of the year. He was last seen in 'Brahmotsavam' which bombed at the box office.
Tags: AR Murugadoss, Rakul Preet, Spyder, Tamil
Other than Ghajini's Kalpana, all of ARM's other leading lady roles have been very poorly written.
Reply September 21, 2017 at 7:59 am


Jump High is a project under Start Now Organization with the sole aimed of creating job placement and internship opportunities for visually impaired people in the Gambia. We aimed at those with higher education.
The project is focus on building their self esteem by transforming them into change agent and leaders in various communities and sensitizing the society about the need for a social change.
The activities that the project set for itself will be advocacy and awareness creation in different parts of the country were talk shows and national TV will be hold.
We want to see visually impaired people as leaders and community developers.


Description: Play Gunblood unblocked at School Let's become a great cowboy holding a gun and shooting the rivals in Gunblood unblocked now! You will never want to miss this Weebly game for school because it's such a wonderful test of your reaction speed! In the game, you need to be quick and skilled at shooting! Move the mouse, prepare your gun and wait for the time to be counted down! After the counting, you must shoot at fast as possible, annihilate your rivals and become the best gunslinger ever!


CONCIERGE AND REAL ESTATE SERVICES, INC.
GREAT OUTDOOR MANAGEMENT GROUP, INC.
GEORGIA INSTITUTE OF SCIENCE & TECHNOLOGY, INC.
MR. PIZZA OF AMERICA, INC.
K W G CONSTRUCTION INC.
THE BRANCH WORSHIP CENTER, INC.
R & K FOOD SERVICES, INC.
LESTER SMITH POST NO. 515, THE AMERICAN LEGION, DEPARTMENT OF GEORGIA, INC.
GEORGE C. WARD PLUMBING, INC.
CORPORATE COMMONS OFFICE CONDOMINIUMS ASSOCIATION, INC.
PEACE BEHIND CLOSED DOORS INC.
THE BLACKBERRY II GROUP, INC.
MATERNAL & FAMILY MEDICINE CENTER, INC.
H & S MART, INC.